Her gün bir belge stoğu (güncelleme) alıyorum. Ne yapmak istiyorum zaten mevcut olmayan her öğeyi eklemek.
- Ayrıca ilk taktığımda ve en son ne zaman bir güncellemede gördüğümü takip etmek istiyorum.
- Yinelenen belgelere sahip olmak istemiyorum.
- Daha önce kaydedilmiş, ancak güncellememde olmayan bir belgeyi kaldırmak istemiyorum.
- Kayıtların% 95'i (tahmini) günden güne değiştirilmez.
Python sürücüsünü (pymongo) kullanıyorum.
Şu anda ne (sahte kod):
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)
Benim sorunum çok yavaş (100 000'den az kayıt için 40 dakika ve güncellemede milyonlarca var). Bunu yapmak için yerleşik bir şey olduğundan eminim, ama update () için belge mmmhhh .... biraz kısa .... ( http://www.mongodb.org/display/DOCS/Updating )
Birisi nasıl daha hızlı yapılacağını önerebilir mi?