从nodejs向mongodb对象数组添加内容

时间:2017-02-27 15:01:14

标签: angularjs node.js mongodb express mongoose

我有一个mongodb对象,下面给出了模型,我想将内容添加到现有数组

var UsersSchema = new Schema({
name: {
    type: String, 
    required: true
       },   
EmpId: {
    type:  string,
    required: true
           },
feed:[{
       status: {
        type: String
               },
       comments: {
        type: String
               },
        posted_date: {
        type: Date,
        default : Date.now
               }
    }]
  });

使用PUT或POST可以将内容添加到现有文档的feed数组中。请检查以下代码

router.put('/api/user1', function(request, response){

Model.findById(request.body._id, function(err, user){
    console.log(user.feed);
    if(err){
        response.status(404).send(err);
    }
    else {
        user.update(
                {_id: user._id }, 
                { $addToSet:
        { feed: user.feed  }})
    }
        })
 });

2 个答案:

答案 0 :(得分:0)

找到文档后,应该使用$ push添加到Mongo中的数组。

user.update(
    {_id: user._id }, 
    { $push:
    { feed: user.feed  }
})

答案 1 :(得分:0)

尝试:

user.update({_id: user.id}, {$addToSet: {feed: {$each: user.feed}}});

如果您使用$addToSet$push而不使用$each,则会将整个数组推送到mongo中的数组,而不是每个条目。