2012-04-08 3 views

答えて

5

私はこの質問をmongodbユーザグループに尋ねましたが、答えは不可能で、これは公開issueです。

+4

この問題はMongoDB 2.4で解決されており、['$ setOnInsert'](http://docs.mongodb.org/manual/reference/operator/setOnInsert /)。 – str

14

Updateコマンドでupsert optionを探しています。ドキュメントはここで十分でなければなりません。

+0

例を挙げてください。私はすでに多くのオプションの組み合わせを試していますが、挿入時に設定するフィールドは選択できませんが、更新時には除外されます。 –

+0

フィールドには最初の挿入時にのみ設定するのが好きですが、更新時には触れられません。 –

+0

'update'部分の一部ではなく、更新の' query'部分の 'Y'部分を作らなければなりません。 –

1

$setOnInsert

から私が代わりに "mytableは" の "MyCollection" それを呼ぶだろう。 あなたは、次の操作を行うことができます

db.mycollection.update(
    { MyUniqueKey: "?" }, 
    { 
     $set: {"y": "?"}, 
     $setOnInsert: { 
      MyUniqueKey: "?", 
      "x": "?", 
    }, 
    { upsert: true } 
) 

基本的には$セットは、文書が存在しない場合を除いて、常に動作します。 $ setOnInsertが実行されます。