gpt4 book ai didi

node.js - 使用 Mongoose 更新 MongoDB 文档,而不删除文档中已有的信息

转载 作者:太空宇宙 更新时间:2023-11-03 23:31:28 26 4
gpt4 key购买 nike

所以我想做的是添加到文档中的一个对象而不是删除整个对象。我有一个包含数组的文档,如果我调用 findOneAndUpdate,它会添加我想要的内容,但会删除数组中已有的所有内容。

我想做的就是保留数组中已有的内容并再添加一项。

这是我的代码:

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"
}

我想要的是将这两者结合起来。

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

最佳答案

正如若昂上面所说;你所要做的就是将 $set 更改为 $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) {

关于node.js - 使用 Mongoose 更新 MongoDB 文档,而不删除文档中已有的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37731355/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com