【MongoDB】数组新增对象,如果存在某键值不添加

it2025-02-09  11

比如:我有如下一个 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); } );

 

最新回复(0)