Mongodb 更新条件集合运算符($set 仅在插入时)

vir*_*ren 4 mongodb update

Mongo 更新中是否有任何内容,其中 $set when 仅在插入完成时才起作用。

例如,我有一个包含以下字段的集合:

  1. 用户名
  2. 第一次出现
  3. 数数

我想要的是我将运行这样的更新操作。

coll.update{ q: {username} ,u: {$set:{FirstOccurrence},$inc:count} }
Run Code Online (Sandbox Code Playgroud)

但条件是如果 UserName 已经存在,那么它不会运行 $set 它只会增加计数。

是否可以这样做我正在使用 Java 驱动程序 2.13.0 运行 Mongo 2.6.4

问候维伦

vir*_*ren 5

它将适用于条件 $set 更新操作

http://docs.mongodb.org/manual/reference/operator/update/setOnInsert/

db.products.update(
  { _id: 1 },
  {
    $set: { item: "apple" },
    $setOnInsert: { defaultQty: 100 }
  },
  {upsert: true }
)
Run Code Online (Sandbox Code Playgroud)

这里 setOnInsert 只会在插入新记录时设置 defaultQty。$set 和 $setOnInsert 可以一起使用。

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 (3认同)
  • @Colin'tHart 为其添加了一个示例。感谢您指出了这一点。 (3认同)