首页 > 解决方案 > 我不能同时使用 $set 运算符和 $inc 运算符只有一个在我的情况下工作

问题描述

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' 不适用于此运营商团队字段包含对象 ID 数组

标签: node.jsmongodbexpressmongoosemongodb-query

解决方案


https://mongoosejs.com/docs/api.html#model_Model.updateMany

  1. 过滤«对象»
  2. 文档 «对象»
  3. [选项] «Object» 可选参见 Query.prototype.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


推荐阅读