हर दिन, मुझे दस्तावेजों का एक स्टॉक (एक अद्यतन) प्राप्त होता है। मैं जो करना चाहता हूं वह प्रत्येक आइटम को सम्मिलित करता है जो पहले से मौजूद नहीं है।
- मैं पहली बार उन पर नज़र रखना चाहता हूं, और आखिरी बार मैंने उन्हें अपडेट में देखा था।
- मुझे डुप्लिकेट दस्तावेज़ नहीं चाहिए।
- मैं एक दस्तावेज को हटाना नहीं चाहता, जो पहले सहेजा जा चुका है, लेकिन मेरे अपडेट में नहीं है।
- रिकॉर्ड का 95% (अनुमानित) दिन-प्रतिदिन अनमोड किया जाता है।
मैं पायथन ड्राइवर (पाइमोंगो) का उपयोग कर रहा हूं।
वर्तमान में मैं क्या कर रहा हूँ (छद्म कोड):
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 मिनट, और मेरे पास अपडेट में लाखों हैं)। मुझे पूरा यकीन है कि ऐसा करने के लिए कुछ बनाया गया है, लेकिन अद्यतन के लिए दस्तावेज़ () mmmhhh है .... थोड़ा सा .... ( http://www.mongodb.org/display/DOCS/Updating )
क्या कोई इसे तेजी से करने की सलाह दे सकता है?