【问题标题】:deleteMany only returns 1 value deleted in change streamsdeleteMany 仅返回在更改流中删除的 1 个值
【发布时间】:2021-07-16 18:12:59
【问题描述】:

我有一个 deleteMany 请求,但我很难过滤 deleteMany 返回值的上下文。它只返回从 pusherjs 中删除的 1 个值。

这是我在服务器端的更改流代码和推送代码;

if (schedules.operationType === 'delete') {
    const scheduleDetails = schedules.documentKey;              

    pusher.trigger('schedules', 'deleted', {
        _id: scheduleDetails._id,
        teamOne: scheduleDetails.teamOne,
        teamTwo: scheduleDetails.teamTwo,
        user: scheduleDetails.user,
        isDone: scheduleDetails.isDone,
        isStarted: scheduleDetails.isStarted,
        date: scheduleDetails.date,
        gameEvent: scheduleDetails.gameEvent,
    });
}

这是我在客户端的推送代码。顺便说一句,我正在使用 React。它存储在我的上下文 api 中;

    ScheduleChannel.bind('deleted', ({ deletedSchedule }) => {
        console.log(deletedSchedule);
        setScheduleList(
            scheduleList.filter((schedule) => schedule._id !== deletedSchedule._id)
        );
    });

这是我应要求提供的代码;

exports.deleteallmatch = async (req, res) => {
    try {
        const { sub } = req.user;
        const deletedMatches = await Schedule.deleteMany({ user: sub });

        return res.status(201).json({
            message: 'All of your schedule is successfully deleted!',
            deletedMatches,
        });
    } catch (err) {
        return res.status(400).json({
            message: 'Something went wrong.',
        });
    }
};

删除请求很好,但我希望在我的应用程序中具有实时性。因为碰巧只发送一个数据而不是很多。我该如何解决这个问题?

【问题讨论】:

    标签: node.js reactjs mongodb mongoose pusher


    【解决方案1】:

    deleteMany() 方法返回一个包含三个字段的对象:

    1. n - 匹配文档的数量
    2. ok – 如果操作成功则为 1
    3. deletedCount – 已删除文档的数量

    你可以做的是:

    1. 首先找到与您的查询匹配的所有元素
    2. 将它们存储在某个变量中
    3. 执行删除
    4. 返回存储的变量
    let deleted_items = await Schedule.find({ user: sub });
    await Schedule.deleteMany({ user: sub });
    
    return res.status(201).json({
       message: 'All of your schedule is successfully deleted!',
       deleted_items,
    });
    

    【讨论】:

      猜你喜欢
      • 2021-05-11
      • 2011-12-27
      • 2013-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-04
      相关资源
      最近更新 更多