使用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) {