嘿,我正在尝试设置一个 mongodb 文档中不存在的新数组,但我希望能够将其他文档放入该数组中,而无需不断替换值。
例如:
users {
id: 'value1',
name: {value2},
friends: [
{friendID: 'value x', type: 'valuey', TAGS: [tag1, tag2]}
]
基本上 TAGS 不存在,我想创建它并添加 tag1,如果存在,我只想将 tag2 添加到数组中...
这是为了理解上面示例中的变量与我数据库中的变量的意义:
friendStatus = friends,
fuId = friendID,
labels = TAGS
这是我的尝试:
Friend.findOneAndUpdate({userId: mongoose.Types.ObjectId(req.signedCookies.userid),
'friendStatus.fuId': mongoose.Types.ObjectId(req.body.user)},
{$addToSet: {'friendStatus.$.labels': req.body.labelNew}}
, function(err, userX) {
}
最佳答案
目前无法使用 MongoDB 更新语法来完成您想要的操作。
这里有一个功能可以实现类似的功能:https://jira.mongodb.org/browse/SERVER-6566
关于node.js - 如果数组存在,如何调用 $addToSet,如果数组不存在,则如何在一个查询中调用 $set?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18195228/