Mongodb:插入或更新*字段*

时间:2013-12-08 10:03:12

标签: mongodb

我需要一个Update命令,可以检查是否定义了一个字段,如果是,则为$ inc,否则为$ set。我该怎么做?

例如,我有一个用户,我想更新其他人呼叫的次数。所以起初,用户是:

User = { userName: "name", callers: {}}

通话后,我将新的来电显示添加到来电者:

User = { userName: "name", callers: { "otherUser": 1 }}

问题是我想更新“otherUser”的调用次数,如果他再次打电话给我,我会:

User = { userName: "name", callers: { "otherUser": 2 }}

1 个答案:

答案 0 :(得分:1)

无论您需要什么都是由 $ inc 自动完成的,无需明确检查字段是否已定义。

db.users.update({userName:"name"},{$inc:{"callers.otherUser":1}},true)

db.users.update({userName:"name"},{$inc:{"callers.otherUser":1}})

假设:用户是集合

说明

$ inc是运算符,它按指定值递增字段。 如果字段不存在,则会将该字段添加到文档中。 语法是

$inc:{field:value}

在您的情况下,您想要更新子文档callers:{}中的字段。要访问它,您必须使用我使用sub-document-name.field

callers.otherUser

如果想深入了解,请参考: