我在更新记录时遇到问题。我的文档结构是这样的:
"_id" : "1141825507009",
"person" : [
{
"amount" : 25,
"id" : "1141825507009"
}
]
我想将person.amount增加3,其中person.id是1141825507009.这很容易。 怎么样:
Increment person.amount by 3 if person.id exist.
Add to person list with amount 3 and id 239something845 if person.id does not exist in list.
答案 0 :(得分:0)
我认为你想要的是https://jira.mongodb.org/browse/SERVER-340。您可能想观看/投票。
如果您不需要原子地执行此操作,则可以执行以下操作:
db.foo.update({"person.id" : {$exists : false}, /* other criteria */},
{$inc : {"person.amount":3}});
var result = db.runCommand({getLastError:1})
if (result.n == 0) { // nothing updated, person.id must exist
db.foo.update({/* criteria */},
{$addToSet : {person : {amount:3, id:"239something845"}}});
}