猿问

如果满足条件,请更新收集并发送电子邮件|| Mongo Nodejs

我有以下情况-我想遍历db中的每个元素并:

  • 如果元素的bumped字段设置为false

  • 创建日期少于30天

然后:

  • 设置bumpedtrue

  • 发送邮件给用户!

我的方法:

User.updateMany(

     {

        bumped: false,

        creationDate: {

           $gte: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000),

        },

     },

     {

        $set: {

           bumped: true,

        },

     },

     (err, res) => {

        // 

        // What is "res" here? <====== question

     },

  );

我的问题-res回调函数中的参数是什么?


问题2:是否仅对满足条件的这些元素触发回调?


紫衣仙女
浏览 133回答 1
1回答

慕桂英3389331

updateMany函数不会返回更新的文档。它仅返回更新的文档数。因此,您在这里只能做的事情是先找到所有文档并逐个进行迭代,然后再调用发送邮件功能。const users = await User.find({&nbsp; "bumped": false,&nbsp; "creationDate": {&nbsp; &nbsp; "$gte": new Date(Date.now() - 30 * 24 * 60 * 60 * 1000),&nbsp; }})const promises = users.map(async(user) => {&nbsp; await User.updateOne({ _id: user._id }, { $set: { bumped: true }})&nbsp; // Here you can write your send mail function})await Promise.all(promises)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答