2017-02-27 3 views
1

ich ein mongodb Objekt haben, das Modell weiter unten ist, möchte ich Inhalte an das bestehende Arrayhinzufügen Inhalt zu einem mongodb Objektarray von NodeJS

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

mit einem PUT hinzuzufügen oder POST kann ich hinzufügen Inhalt ein vorhandenes Dokument Feed array.please überprüfen den Code unten

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

Antwort

0

Sie sollten $ Push verwenden, um ein Array in Mongo hinzuzufügen, nachdem Sie Ihr Dokument.

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

Versuchen:

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

Wenn Sie $addToSet oder $push ohne $each verwenden wird das gesamte Array auf das Array in Mongo schieben, nicht jeder Eintrag.