为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

紫衣仙女 2021-04-04 16:13:37
我有以下情况-我想遍历db中的每个元素并:如果元素的bumped字段设置为false创建日期少于30天然后:设置bumped为true发送邮件给用户!我的方法: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:是否仅对满足条件的这些元素触发回调?
查看完整描述

1 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

updateMany函数不会返回更新的文档。它仅返回更新的文档数。


因此,您在这里只能做的事情是先找到所有文档并逐个进行迭代,然后再调用发送邮件功能。


const users = await User.find({

  "bumped": false,

  "creationDate": {

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

  }

})


const promises = users.map(async(user) => {

  await User.updateOne({ _id: user._id }, { $set: { bumped: true }})

  // Here you can write your send mail function

})


await Promise.all(promises)


查看完整回答
反对 回复 2021-04-08
  • 1 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信