我有一份文件:
{ 'profile_set' :
[
{ 'name' : 'nick', 'options' : 0 },
{ 'name' : 'joe', 'options' : 2 },
{ 'name' : 'burt', 'options' : 1 }
]
}
如果名称不存在(无论选项如何),则希望将新文档添加到配置文件集。
所以在这个例子中,如果我试图添加:
{'name' : 'matt', 'options' : 0}
它应该添加它,但是添加
{'name' : 'nick', 'options' : 2}
不应执行任何操作,因为名为nick
的文档已经存在,即使option
不同。
Mongo似乎与整个元素匹配,我最后检查它是否相同
profile_set containing [{'name' : 'nick', 'options' : 0}, {'name' : 'nick', 'options' : 2}]
有没有办法用$addToSet来完成这个操作,或者我必须推送另一个命令?
如果
name
已存在于profile_set
中,则可以使用阻止更新的查询对象限定update
。在外壳中:因此,这将只对具有匹配的
_id
的文档执行$push
,并且没有profile_set
元素,其中name
是'nick'
。相关问题 更多 >
编程相关推荐