const User = require('./model.js)
const result = await User.updateMany({_id:{$in:team}},{ $set: { current_level_status : 'incomplete' , user_helper_status : false,user_admin_status : false }},{$inc:{level_number:1}});
console.log(result)
我正在使用猫鼬集运算符和增量运算符一起使用
mongoose"updateMany"不适用于此运算符team字段包含对象id数组
https://mongoosejs.com/docs/api.html#model_Model.updateMany
- 过滤器«对象»
- 文档«对象»
- [选项]«对象»可选,请参阅Query.protype.setOptions((
问题是您在第三个参数中传递$inc
,而不是将其与第二个参数中的同一对象连接。
更改
const result = await User.updateMany(
{_id:{$in:team}}, // Parameter 1
{$set: { current_level_status : 'incomplete' , user_helper_status : false,user_admin_status : false }}, // Parameter 2
{$inc:{level_number:1}} // Parameter 3
);
至
const result = await User.updateMany(
{_id:{$in:team}}, // Parameter 1
{ // Parameter 2
$set: { current_level_status : 'incomplete' , user_helper_status : false,user_admin_status : false }
$inc: {level_number:1}
}
);
演示-https://mongoplayground.net/p/7zHcJy_sh-H
$inc
应该在update()
函数的第二个参数中,但在$set
:之外
User.updateMany({ _id: { $in: team } }, {
$set: {
current_level_status: 'incomplete',
user_helper_status: false,
user_admin_status : false
},
$inc: { level_number: 1 }
});