Mongodb:在循环中更新多个文档?

时间:2017-05-05 02:34:13

标签: node.js mongodb node-mongodb-native

我努力寻找解决这种常见情况的方法,但没有成功。希望有人可以帮忙。

背景:

  • 消息板。
  • 每封邮件都有自己的msg_id。
  • 每个用户都有一个id
  • 我需要来跟踪哪个用户观看了哪条消息。 为此,我有一个名为 seenMessages 的集合,如下所示:
    {
        { _id: <message_id_X>,
            viewedBy: [<user_id_?>,<user_id_?>,...]
        },
        { _id: <message_id_Y>,
            viewedBy: [<user_id_?>,<user_id_?>,user_id_?>,...]
        },
        ...
    }

用户偶尔会调用我的node.js服务器,报告查看了哪些消息,如下所示:

{ user_id: <user_id_?>, viewed: [<message_id_?>,...] }

仅当某些用户按照查看方式报告时,才会创建消息条目。这是使用以下命令完成的:

db.viewedMessages.update({"_id":<msg_id>},{$addToSet:{viewedBy:<user_id>}},{ upsert : true });

现在提出问题。

以上更新命令是异步的。如何运行[msg_id,msg_id,msg_id,...]数组,为每个msg_id发出上述更新命令,最后得到一个回调,告诉我一切都已完成或由于某种原因失败了?

非常感谢这里的任何帮助!

0 个答案:

没有答案