2012-04-18 11 views
0

Iは_idsと書き込むための文書の新しい配列を有する: [1、2、3、4、5、6、7] _idsとドキュメントのMongoDBのInsertBatch例外例えば

と既に格納されているコレクション: [ 3,4,7]。

私の新しいシーケンスをコマンドInsertBatchで保存したいのですが、既存のすべての_idをチェックしたくありません。 Ofcourse Mongoは衝突のために例外をスローし、コレクションは新しいシーケンスの一部のみを持ちます: [3,4,7,1,2]

この問題をどうやって解決できますか?

+0

希望の結果は何ですか?あなたは_id 3の2つの文書を持っていますか?あるいは古いバージョンまたは新しいバージョンを保持したいですか? – dcrosta

+0

すべての_idはユニークで古い文書を保存したいと思うので)[1,2,5,6]と書く必要があります。私はすべての衝突を見つけて、新しいシーケンスから削除し、編集されたシーケンスでBatchInsertを実行することができましたが、解決策がもっと可愛いかもしれません; – Edward83

答えて

1

MongoDB 2.0を使用している場合は、continueOnErrorフラグをfalseに設定して、この動作を実現できます。詳細はhttp://www.mongodb.org/display/DOCS/Inserting#Inserting-Bulkinsertsを参照してください。アプリケーションでこれを使用する方法については、ドライバのAPIドキュメントを参照してください。

+0

cool !!!ありがとうございました!!!!!!それは私が必要なものです;) – Edward83