3

ドキュメントの配列をパラメータとして 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)エラーはスローされません。どうも。

4

2 に答える 2