【发布时间】:2013-01-09 18:45:06
【问题描述】:
我有一份文件:
{ 'profile_set' :
[
{ 'name' : 'nick', 'options' : 0 },
{ 'name' : 'joe', 'options' : 2 },
{ 'name' : 'burt', 'options' : 1 }
]
}
如果名称尚不存在(无论选项如何),并且希望将新文档添加到 profile_set 集中。
所以在这个例子中,如果我尝试添加:
{'name' : 'matt', 'options' : 0}
它应该添加它,但是添加
{'name' : 'nick', 'options' : 2}
不应执行任何操作,因为名称为 nick 的文档已经存在,即使 option 不同。
Mongo 似乎与整个元素匹配,我最终检查它是否相同,我最终得到
profile_set containing [{'name' : 'nick', 'options' : 0}, {'name' : 'nick', 'options' : 2}]
有没有办法用$addToSet 做到这一点,还是我必须推送另一个命令?
【问题讨论】:
-
由于您不能保证 $addToSet 会首先运行,您需要两个命令来执行此操作