$ pUSH进入mongoose的Subdoc数组

时间:2014-03-15 05:24:35

标签: javascript node.js mongodb mongoose

我有以下型号:

var Customer = mongoose.model('Customer', {
    firstname : String,
    lastname : String,
    phone : String,
    street : String,
    city : String,
    state : String,
    zip : String,
    fixed : Boolean,
    readings: [
        {
            reading: Number,
            date: String
        }],
    billing: {
        charges: [Number],
        payments: [Number]
    }
});

我正在尝试将个人费用和付款添加到结算中。

我使用以下代码但似乎没有更新....

   Customer.update({_id: req.params.cust_id},
       { billing: { $push:{charges: 100}, $push:{payments:50}}},
       {upsert:true},
       function(err, customer){
           if(err){
               console.log(err);
           }
           else{
               Customer.findOne({
                   _id : req.params.cust_id
               }, function(err, customer) {
                   if (err)
                       res.send(err);
                   res.json(customer);
               });
           }
       }
   )

如果有人有任何建议,我们将不胜感激。我发现了很多$ push的例子,但似乎都在顶级而不是suboc。

1 个答案:

答案 0 :(得分:2)

对字段使用点表示法,这是$ push

的参数
Customer.update({_id: req.params.cust_id},
   { $push: { "billing.charges": 100, "billing.payments": 50} },
   {upsert:true},