比如:我有如下一个 document
{ 'subuser' :
[
{ 'name' : 'scott', 'sex' : 1 },
{ 'name' : 'jack', 'sex' : 0 },
{ 'name' : 'joya', 'sex' : 1 }
]
}
当我新增如下一项
{'name' : 'matt', 'sex' : 0}
那么它应该正确被添加
但是当我添加下面一项
{ 'name' : 'jack', 'sex' : 1 }
它不应该被添加,因为 jack 已经存在了,尽管 sex 不一样。
如果想达到这个目的,应该使用如下的语句:
db.collection('account').updateOne(
{
_id: ObjectId("5d45985dcb821d26d0bd0862"),
'subuser.name': {$ne: 'jack'}
},
{
$push: {
subuser: {
name: 'jack',
sex: 0
}
}
},
(err,res)=> {
console.log(err);
console.log(res);
}
);