Mongodb $addToSet 一个对象到嵌套数组
Mongodb $addToSet an object into nested array
我试图将一个对象插入到另一个数组中的数组中,但它只插入了一个空对象。
db.players.update({ username: crUserName }, { $addToSet: { finditem: nitem[0] } },{upsert:true} , function (err, doc)
nitem[0] 是一个对象。
然而我从数据库中查到的结果是这样的
我试图将值插入到这个数组中,它有效但不适用于对象。
我做了一些研究,但一无所获。
希望这里有人能帮助我!谢谢。
===已更新===
Nitem[0] 包含我要放入数组 "finditem" 的项目的信息。
看起来像这样
这个没有错return,每次更新,
它说 {ok:1, nModified:1, n:1}
$addToSet 不会对整个对象进行编译。目前这不是 mongo 功能。这有点棘手。你可以像 somting 那样做
Player.findOneAndUpdate({
username: crUserName,
"finditem._id" : {$ne : nitem[0]._id }
},
{
// addToSet insert if nitem _id not exists .
$addToSet: {
finditem: nitem[0]
}
},
{
upsert: false,
new: true
},(err, results)=>{
console.log(err, results);
})
我试图将一个对象插入到另一个数组中的数组中,但它只插入了一个空对象。
db.players.update({ username: crUserName }, { $addToSet: { finditem: nitem[0] } },{upsert:true} , function (err, doc)
nitem[0] 是一个对象。
然而我从数据库中查到的结果是这样的
我试图将值插入到这个数组中,它有效但不适用于对象。 我做了一些研究,但一无所获。
希望这里有人能帮助我!谢谢。
===已更新===
Nitem[0] 包含我要放入数组 "finditem" 的项目的信息。
看起来像这样
这个没有错return,每次更新, 它说 {ok:1, nModified:1, n:1}
$addToSet 不会对整个对象进行编译。目前这不是 mongo 功能。这有点棘手。你可以像 somting 那样做
Player.findOneAndUpdate({
username: crUserName,
"finditem._id" : {$ne : nitem[0]._id }
},
{
// addToSet insert if nitem _id not exists .
$addToSet: {
finditem: nitem[0]
}
},
{
upsert: false,
new: true
},(err, results)=>{
console.log(err, results);
})