मैं थोक अद्यतन करने के लिए pymongo का उपयोग कर रहा हूँ।थोक अद्यतन बहुत धीमा है
bulk = db.collection.initialize_unordered_bulk_op()
for name in names:
bulk.find({"A":{"$exists":False},'Name':name}).update({"$set":{'B':b,'C':c,'D':d}})
print bulk.execute()
कोड 2:
bulk = db.collection.initialize_unordered_bulk_op()
counter = 0
for name in names:
bulk.find({"A":{"$exists":False},'Name':name}).update({"$set":{'B':b,'C':c,'D':d}})
counter =counter + 1
if (counter % 100 == 0):
print bulk.execute()
bulk = db.collection.initialize_unordered_bulk_op()
if (counter % 100 != 0):
print bulk.execute()
नीचे नाम सूची के नाम (प्रत्येक नाम संग्रह में एकाधिक दस्तावेज़ों हो सकता है) की एक अलग सूची
कोड 1 है
मेरे संग्रह में मेरे पास 50000 दस्तावेज हैं। यदि मैं काउंटर से छुटकारा पाता हूं और यदि कथन (कोड 1), कोड अटक गया है! अगर कथन (कोड 2) के साथ, मुझे लगता है कि इस ऑपरेशन को कुछ मिनट से ज्यादा समय नहीं लेना चाहिए, लेकिन इससे अधिक रास्ता ले रहा है! क्या आप कृपया इसे तेजी से बनाने में मेरी मदद कर सकते हैं या क्या मैं अपनी धारणा में गलत हूं ?!
मदद के लिए धन्यवाद, लेकिन मुझे लगता है कि समय है कि आप ऊपर दिया है सही रूप में वे 10000 दस्तावेज़ों के लिए नहीं हैं, लेकिन केवल उन लोगों में से एक आधा (पर विचार> 0.5 और <= 0.5 समान रूप से कर रहे हैं नहीं कर रहे हैं संभावित)। साथ ही, यह मदद करेगा यदि आप साझा कर सकते हैं कि आपने शुरुआती के लिए फ़ील्ड ए और नाम कैसे अनुक्रमित किया था। एक बार फिर धन्यवाद! – amazingCodingExperience
इसके अलावा, प्रक्रिया को कैसे बढ़ाया जाए? क्या आप इसके पीछे सिद्धांत साझा कर सकते हैं? – amazingCodingExperience
मेरे उत्तर में अधिक जानकारी जोड़ा गया। हालांकि, मोंगोडब मुफ्त में बहुत अच्छे ऑनलाइन पाठ्यक्रम प्रदान करता है: https://university.mongodb.com/courses/M101P/about मेरा सुझाव है कि आप इनमें से एक को मोंगो के साथ गति प्राप्त करने के लिए लें। – squanto773