毎日、ドキュメントの在庫を受け取ります (更新)。私がやりたいことは、まだ存在しない各アイテムを挿入することです。
- また、それらを初めて挿入したときと、更新で最後に見たときを追跡したいと思います。
- 書類を重複させたくありません。
- 以前に保存されたドキュメントを削除したくありませんが、更新には含まれていません。
- レコードの 95% (推定) は毎日変更されていません。
Python ドライバー (pymongo) を使用しています。
私が現在行っていることは(疑似コード)です:
for each document in update:
existing_document = collection.find_one(document)
if not existing_document:
document['insertion_date'] = now
else:
document = existing_document
document['last_update_date'] = now
my_collection.save(document)
私の問題は、それが非常に遅いことです(100 000未満のレコードで40分、更新には数百万のレコードがあります)。これを行うための組み込み機能があると確信していますが、 update() のドキュメントは mmmhhh です.... 少し簡潔です.... ( http://www.mongodb.org/display/DOCS/Updating )
誰かがそれをより速く行う方法をアドバイスできますか?