2016-05-03 1 views
1

既存のものと同じ_idを持つドキュメントを挿入する場合、MongoDBにスキップする(クラッシュするのではなく)ように指示する方法はありますか?MongoDBのinsertManyの間に同じIDをスキップする

言って、私はこのリストを持っていると私はそれを保持したい:

to_mongo = [ 
    {'_id': 'aaaaaa', 'content': 'hey'}, 
    {'_id': 'bbbbbb', 'content': 'you'}, 
    {'_id': 'aaaaaa', 'content': 'hey'} 
] 

mongo_collection.insert_many(to_mongo) 

私は単に無視される最後の項目を好きなのではなく、クラッシュする全体の要求を起こしたいです。 insert_many()方法でordered=Falseを使用して

答えて

3

てみすなわち

to_mongo = [ 
    {'_id': 'aaaaaa', 'content': 'hey'}, 
    {'_id': 'bbbbbb', 'content': 'you'}, 
    {'_id': 'aaaaaa', 'content': 'hey'} 
] 
mongo_collection.insert_many(to_mongo, ordered=False) 

これは、すべてのエラーがある場合でも、操作が試みられ書くことを確認します。 docsから:(オプション)を命じ

:真(デフォルト)文書場合は、提供するためには、シリアルサーバ上 に挿入されます。エラーが発生した場合は、残りのすべての挿入が中止されます( )。 Falseの場合、ドキュメントは の任意の順序で、おそらく並行して挿入され、すべての文書 の挿入が試行されます。

関連する問題