mongoose - 增加数组内的值

时间:2017-11-16 09:25:19

标签: node.js mongoose

我有以下架构:

var mySchema = new Schema({
  "name": String,
  "users": [
     { 
       "user_id": ObjectId,
       "counter": Number
     }]
});

文件示例:

{
   "name": "Test",
   "users": [
       {
          "user_id": "aaaaaa",
          "counter": 2
       },
       {
          "user_id": "bbbbbb",
          "counter": 3
       }]
}

我如何findOneAndUpdate具体user_id并增加counter

例如:如何在单个操作中找到Test并更新counter的{​​{1}}?

1 个答案:

答案 0 :(得分:2)

mongoose.model('MySchema', mySchema); //is this line superflous??
var MySchema = mongoose.model('MySchema');

MySchema.update({"name": "Test", "users.user_id" : "aaaaaa" } , 
                {$inc : {"users.$.counter" : 1} },
                function() {...});

因此,对于第一个对象,您将找到要更新的对象。第二个参数是您要更新的内容,其中$用于仅更改查询中当前选定的对象。最后一个参数是回调。