Mongodb:一次更新同一文档中多个数组的元素

时间:2016-07-15 06:09:30

标签: javascript arrays node.js mongodb mongoose

我使用$push来更新一个数组的元素。但是,当我尝试使用逗号分隔值(如下所示)更新保持$push的多个数组的元素时,它显示错误。怎么做?

var conditions = { some condition };
var update = { $push : {Feedback : { Feedbacks:req.body.Feedbacks}}, {Strength : { Strengths:req.body.Strengths}}};
var options = { multi : true};

Model.update(conditions, update, options, callback);

架构是:

Model : {

Field1 : {
    type:Number 
},

Field2: { 
     type : String
 },

Feedback : {
        type: Array,
        Default:[]
    },

    Strength : {
        type: Array,
        Default: [],
    }
};

注意:它适用于一个阵列更新(如果我在推送后仅保留反馈数组),但不适用于多个阵列更新。如何处理多个数组?

2 个答案:

答案 0 :(得分:1)

Push to two separate arrays in one update call in mongodb

Model.update(
   conditions, 
   updates,
   options,
   callback
)

var updates = 
{
   $push : 
   {
      Feedback : { $each: req.body.Feedbacks },
      Strength : { $each: req.body.Strengths }
   }
}

答案 1 :(得分:0)

   { $push: { <field1>: <value1>,
              <field2>: <value2> } }

      $push : 
       {
         Feedback : { $each: req.body.Feedbacks },
         Strength : { $each: req.body.Strengths } }