ドキュメントの配列をパラメータとして mongodb の db.collection.save メソッドを呼び出そうとしています。_id が存在する場合、一括操作の挿入/置換を行いたいです。
これが私のテストケースです:
> use sometestdb
switched to db sometestdb
>
> doc1 = { _id: 1, value: "some value 1" }
{ "_id" : 1, "value" : "some value 1" }
> doc2 = { _id: 2, value: "some value 2" }
{ "_id" : 2, "value" : "some value 2" }
> doc3 = { _id: 3, value: "some value 3" }
{ "_id" : 3, "value" : "some value 3" }
>
> db.docs.save( [doc1, doc2, doc3] )
>
> doc1 = { _id: 1, value: "some value 1 - updated" }
{ "_id" : 1, "value" : "some value 1 - updated" }
> doc2 = { _id: 2, value: "some value 2 - updated" }
{ "_id" : 2, "value" : "some value 2 - updated" }
> doc3 = { _id: 3, value: "some value 3 - updated" }
{ "_id" : 3, "value" : "some value 3 - updated" }
> db.docs.save( [doc1, doc2, doc3] )
E11000 duplicate key error index: sometestdb.docs.$_id_ dup key: { : 1.0 }
を呼び出そうとしてもdb.docs.save (doc1)
、db.docs.save (doc2)
エラーはスローされません。どうも。