$ set whenが挿入が行われたときにのみ機能するMongoの更新に何かありますか?.
たとえば、次のフィールドを持つコレクションがあります。
このような更新操作を実行したいのですが。
coll.update{ q: {username} ,u: {$set:{FirstOccurrence},$inc:count} }
ただし、条件は、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 }
)
ここで、setOnInsertは、新しいレコードが挿入されたときにのみdefaultQtyを設定します。 $ setと$ setOnInsertの両方を一緒に使用できます。