दिलचस्प पोस्ट
एंड्रॉइड मीडियारेकॉर्डर – "आरंभ विफल: -19" स्क्रॉलव्यू के अंदर गैर स्क्रॉल सूची देखें DataGridView में डेटटाइम कॉलम को कैसे प्रारूपित करें? जीआईएफ / जेपीजी / पीएनजी / पीडीएफ के रूप में एचटीएमएल कैनवास कैप्चर करें? के बीच अंतर । और: लुआ में मैं स्थानीय जीआईटी शाखा का नाम कैसे बदलूं? 3 अक्षांश और रेखांश अंक और 3 दूरी का उपयोग करके त्रिकोणीयकरण अजगर या आइपीथॉन दुभाषिया में प्रवेश करते समय स्वचालित रूप से मॉड्यूल आयात करें Matlab में एक वीडियो बनाने के लिए दृष्टिकोण वर्ण वेक्टर को कैसे सॉर्ट करने के लिए जहां तत्वों में आर में अक्षरों और संख्याएं होती हैं? मैटलैब में एनिमेटेड प्लॉट कैसे करें IPhone पर गैर-शक्ति-दो बनावट को प्रस्तुत करना Xxhdpi एंड्रॉइड के लिए स्केल कारक? शुद्ध एमवीसी एचटीएमएल। चेकबॉक्स का उचित उपयोग अजगर समूह द्वारा व्यवहार?

MongoDB में FindAndModify और अपडेट के बीच अंतर क्या है?

मैं थोड़े ही उलझन में findAndModify और MongoDB में findAndModify विधि update पद्धति पर इसका क्या फायदा है? मेरे लिए, ऐसा लगता है कि यह सिर्फ आइटम वापस देता है और फिर उसे अपडेट करता है लेकिन मुझे पहली बार आइटम वापस करने की आवश्यकता क्यों है? मैंने मोंगोडीबी को पढ़ा है : निश्चित गाइड और यह कहता है कि कतारों में छेड़छाड़ करने और अन्य कार्यों को पूरा करने के लिए यह आसान है, जिसकी ज़रूरत निश्चित और परस्पर विरोधी परमाणु होती है। लेकिन मुझे समझ में नहीं आया कि यह कैसे प्राप्त होता है। क्या कोई मुझे यह समझा सकता है?

वेब के समाधान से एकत्रित समाधान "MongoDB में FindAndModify और अपडेट के बीच अंतर क्या है?"

यदि आप कोई आइटम प्राप्त करते हैं और उसके बाद उसे अपडेट करते हैं, तो उन दो चरणों के बीच एक और धागा द्वारा अपडेट हो सकता है। यदि आप पहली बार किसी आइटम को अपडेट करते हैं और फिर उसे प्राप्त करते हैं, तो एक और अपडेट भी हो सकता है और आप एक अलग आइटम को अपने अपडेट के मुकाबले वापस प्राप्त करेंगे।

इसे "परमाणु रूप से" करने का अर्थ है कि आप इस बात की गारंटी लेते हैं कि आप ठीक उसी आइटम को वापस ले रहे हैं जो आप अपडेट कर रहे हैं – यानी कोई और आपरेशन बीच में नहीं हो सकता।

findAndModify दस्तावेज़ देता है, अद्यतन नहीं करता है।

यदि मुझे ड्वाइट मेरिमान (मोंगो डीबी के मूल लेखकों में से एक) सही ढंग से समझा गया, तो एक दस्तावेज़ को संशोधित करने के लिए अद्यतन का प्रयोग करना अर्थात् ("बहु": गलत} परमाणु भी है। वर्तमान में, यह खोज और findAndModify का उपयोग करते हुए समकक्ष अपडेट करने से भी तेज होना चाहिए।

मोंगोडीबी डॉक्स (जोर दिया गया) से:

  • डिफ़ॉल्ट रूप से, दोनों ऑपरेशन एक एकल दस्तावेज़ को संशोधित करते हैं। हालांकि, इसके बहु विकल्प के साथ अद्यतन () विधि एक से अधिक दस्तावेज़ को संशोधित कर सकती है

  • यदि एकाधिक दस्तावेज़ अपडेट मानदंड से मेल खाते हैं, तो FindAndModify () के लिए, आप किसी प्रकार का निर्दिष्ट कर सकते हैं कि किस दस्तावेज़ को अद्यतन करने के लिए कुछ नियंत्रण मिले। अपडेट () विधि के डिफ़ॉल्ट व्यवहार के साथ, आप यह निर्दिष्ट नहीं कर सकते हैं कि जब एकाधिक दस्तावेज़ मिलते हैं, तो कौन सा एकल दस्तावेज़ अपडेट हो।

  • डिफ़ॉल्ट रूप से, FindAndModify () विधि दस्तावेज़ के पूर्व-संशोधित संस्करण देता है । अद्यतित दस्तावेज़ प्राप्त करने के लिए, नए विकल्प का उपयोग करें। अपडेट () विधि एक WriteResult ऑब्जेक्ट देता है जिसमें ऑपरेशन की स्थिति होती है। अपडेट किए गए दस्तावेज़ को वापस करने के लिए, () विधि का उपयोग करें। हालांकि, अन्य अपडेट ने आपके अपडेट और दस्तावेज़ पुनर्प्राप्ति के बीच दस्तावेज़ को संशोधित किया हो। साथ ही, यदि अपडेट में केवल एक ही दस्तावेज़ में संशोधन किया गया है, लेकिन कई दस्तावेज़ मिलान किए गए हैं, तो आपको अपडेट किए गए दस्तावेज़ की पहचान करने के लिए अतिरिक्त तर्क का उपयोग करना होगा।

  • आप डिफ़ॉल्ट लिखने की चिंता को ओवरराइड करने के लिए AndModify () को खोजने के लिए एक लिखित चिंता निर्दिष्ट नहीं कर सकते हैं, जबकि MongoDB 2.6 में शुरू, आप अपडेट () विधि के लिए एक लिखित चिंता निर्दिष्ट कर सकते हैं

जब एक एकल दस्तावेज़ को संशोधित करते हैं, तो दोनों findAndModify () और अद्यतन () विधि परमाणु रूप से दस्तावेज़ को अपडेट करते हैं।

इस्तेमाल मामलों के एक उपयोगी वर्ग काउंटर और इसी तरह के मामले हैं। उदाहरण के लिए, इस कोड पर एक नज़र डालें (एक मोंगोडीबी परीक्षण): find_and_modify4.js

इस प्रकार, खोज के साथ findAndModify आपको findAndModify करें काउंटर को बढ़ाता है और एक चरण में इसकी वृद्धिशील मान प्राप्त कर रहा है। तुलना करें: यदि आप (ए) इस प्रक्रिया को दो चरणों में करते हैं और किसी और (बी) आपके कदमों के बीच एक ही ऑपरेशन करते हैं तो ए और बी को दो अलग-अलग (संभावित समस्याओं का सिर्फ एक उदाहरण) के बजाय एक ही अंतिम काउंटर मान प्राप्त हो सकता है