使用Mongoose更新MongoDB文档而不删除文档中已有的信息

所以我想要做的就是添加到文档中的一个对象而不是删除整个事情。 我有一个数组的文件,如果我打电话findOneAndUpdate它增加了我想要的,但摆脱了已经在数组中的一切。

我想要做的就是保留我已经在我的arrays中,并添加一个项目。

这是我的代码:

Friends.findOneAndUpdate({facebookId: value.id}, {$set: {friends: {id: profile.id, name: profile._json.name}} }, {new: false}, function (err, friends) { if(err){ console.log("Something went wrong when updating data!"); } console.log("success saving user friend update"); }); 

这里是我的数组在数据库中发生了什么:

这个:

 "friends": [ { "id": "114222474148205", "name": "Chris Chang" }, { "id": "903622474147290", "name": "Johny Unitas" }, { "id": "685034985392094", "name": "Mary Jane" } ] 

对此:

 "friends": { "id": "49572957395733524", "name": "John Doe" } 

我想要的是这两个要结合。

那么我将如何“添加”一个项目,而不是“更新”该项目?

正如若奥所说, 我所要做的就是将$设置为$ push。

所以这:

 Friends.findOneAndUpdate({facebookId: value.id}, {$push: {friends: {id: profile.id, name: profile._json.name}} }, {new: false}, function (err, friends) { 

而不是这个:

 Friends.findOneAndUpdate({facebookId: value.id}, {$set: {friends: {id: profile.id, name: profile._json.name}} }, {new: false}, function (err, friends) {