我有以下情况-我想遍历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)
添加回答
举报
0/150
提交
取消