【问题标题】:i cannot use $set operator and $inc operator together only one is working in my case我不能同时使用 $set 运算符和 $inc 运算符只有一个在我的情况下工作
【发布时间】:2021-07-02 07:23:42
【问题描述】:
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 数组

【问题讨论】:

    标签: node.js mongodb express mongoose mongodb-query


    【解决方案1】:

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

    1. 过滤«对象»
    2. 文档«对象»
    3. [options] «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

    【讨论】:

    • 我发现这更简单更简短await User.updateMany( {_id:{$in:team}}, { $set: { current_level_status : 'incomplete' , user_helper_status : false,user_admin_status : false }, $inc: { level_number:1 } }, )
    • @JewelKWilson 和我的回答有什么区别?
    【解决方案2】:

    $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 }
    });
    

    【讨论】:

      猜你喜欢
      • 2016-11-23
      • 2021-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-23
      • 2021-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多