Mongo 更新中是否有任何内容,其中 $set when 仅在插入完成时才起作用。
例如,我有一个包含以下字段的集合:
我想要的是我将运行这样的更新操作。
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
问候维伦
它将适用于条件 $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 可以一起使用。