का उपयोग कर जावा में createIndex() और सुनिश्चित करें इंडेक्स() के बीच अंतर MongoDB का उपयोग कर जावा में createIndex()
और ensureIndex()
के बीच क्या अंतर है? मैंने इसे गुगल किया लेकिन संतोषजनक जवाब नहीं मिला।मोंगोडब
मोंगोडब
उत्तर
अद्यतन 2: मूल जवाब, साथ ही पहले अद्यतन, ग़लती से मोंगो खोल प्रलेखन संदर्भ जावा एपीआई के बजाय।
जावा में, DBCollection.ensureIndex()
संस्करण 2.12 में बहिष्कृत किया गया था और संस्करण 3.0 में हटा दिया गया था। DBCollection.createIndex()
वह है जिसे इस्तेमाल किया जाना चाहिए।
अद्यतन:
db.collection.ensureIndex()
संस्करण 3.0.0 के बाद से मान्य नहीं है।
अब db.collection.createIndex() के लिए उपनाम है।
मूल:
createIndex()
है deprecated since 1.8
यह संग्रह पर अनुक्रमणिका बनाने के लिए अगर सूचकांक पहले से ही अस्तित्व में नहीं है जबकि ensureIndex()
निर्दिष्ट क्षेत्र पर अनुक्रमणिका बनाता है इस्तेमाल किया गया था। इसके अलावा जब हम createIndex()
पर अमल दो बार दूसरे निष्पादन सिर्फ असफल हो जायेगी जबकि ensureIndex()
के साथ इसे कई बार आह्वान कर सकते हैं और यह असफल नहीं हो
एक और बात यह है कि वे ensureIndex()
के व्यवहार के बारे में बदल गया है, के पिछले संस्करणों में MongoDB (संस्करण तो कम 2.6) यदि कोई मौजूदा दस्तावेज़ के लिए सूचकांक प्रविष्टि अधिकतम सूचकांक कुंजी लंबाई एक सूचकांक बनाई किया जाएगा से अधिक है लेकिन MongoDB सूचकांक ऐसे दस्तावेजों जबकि नहीं हाल के संस्करण में कोई सूचकांक बनाई किया जाएगा।
[मोंगोडब डॉक्स] के अनुसार (http://docs.mongodb.org/manual/reference/method/db.collection.ensureIndex/) 'sureIndex()' बहिष्कृत है। – KPrince36
'createIndex' वास्तव में नरम-असफल हो जाएगा (कम से कम 3.0 पर)। बाद की कॉल पर यह "ठीक" वापस आ जाएगा, लेकिन "नोट" भी बताएगा कि "सभी इंडेक्स पहले से मौजूद हैं" – PeterM
जावा एपीआई में, DBCollection.ensureIndex()
वास्तव में चारों ओर (प्रतिक्रिया के समय) "सामान्य" MongoDB एपीआई की तुलना में अन्य तरह से अनुचित है,। अद्यतन: यह विसंगति तब से हल हो गई है, और db.collection.createIndex()
अब मोंगो खोल में db.collection.ensureIndex()
को प्रतिस्थापित करता है।
आप https://jira.mongodb.org/browse/JAVA-1097 में देख सकते हैं, जावा में (जो ओ पी के बारे में पूछा) ensureIndex()
संस्करण जावा चालक की 2.12.0 में पदावनत किया गया था, और DBCollection.createIndex()
एक आप उपयोग करने की आवश्यकता है। DBCollection.ensureIndex()
(संस्करण 2.12 से लिंक) DBCollection जावा एपीआई में अब उपलब्ध नहीं है।
बीटीडब्ल्यू, मैं प्रतिष्ठा की कमी के कारण @ sol4me के गलत उत्तर पर टिप्पणी नहीं कर सकता, न ही गलत तरीके से हटाए गए मूल को पुनर्जीवित करता हूं जवाब दें, या उस मामले के लिए और कुछ भी करें। :-( –
यदि आपको लगता है कि आप सही हैं, तो अच्छी तरह से लिखित उत्तर पोस्ट करें, उस तरह का बेकार जवाब नहीं। यह सुनिश्चित करने के लिए हटा दिया जा रहा है। – Dici
मुझे खेद है, लेकिन मेरे जवाब के बारे में क्या बेकार है? मैं कह रहा हूँ कि @ sol4me को यह गलत लगता है, और जावा एपीआई में आपको वास्तव में createIndex() का उपयोग करना होगा। मैं संबंधित जेआईआरए मुद्दे का भी संदर्भ देता हूं जहां मैंने इसे मोंगोडीबी डेवलपर्स के साथ स्पष्ट करने में कामयाब रहे ... अगर मुझे कभी जवाब मिल गया जो लोग मेरा जवाब हटाते हैं, मैं इसे संपादित करूँगा और यह दिखाने के लिए वहां सभी सामानों को नहीं छोड़ूंगा कि यह कैसे हटा दिया गया है। जैसा कि यह है, यह मेरे लिए बहुत ही विरोधी है, मैंने डेवलपर्स के साथ चीजों पर चर्चा करने का प्रयास भी किया है। एक सही उत्तर दे सकता है। –
जावा ड्राइवर (v2.12 और पुराने) में मिली ensureIndex
विधि कैश करेगा, सूचकांक संग्रह पर मौजूद है या नहीं। चूंकि एकाधिक ग्राहक संभावित रूप से संग्रह पर इंडेक्स को बदल सकते हैं, इसलिए कैश मान कभी-कभी गलत हो सकता है और ड्राइवर लापता इंडेक्स बनाने में असफल हो जाता है।
इस कारण से, जावा चालक ने समान व्यवहार के साथ createIndex
विधि लागू की, सिवाय इसके कि यह सूचकांक स्थिति को कैश नहीं करेगा।
ड्राइवर 2 के साथ।12 और बाद वाले वर्शन, आप ensureIndex
createIndex
से प्रतिस्थापित कर सकते हैं और उसी व्यवहार की अपेक्षा करते हैं, प्रदर्शन प्रदर्शन को छोड़कर जहां ड्राइवर पहले सोचता था कि अनुक्रमणिका पहले से मौजूद है और mongo सर्वर पर createIndex कमांड भेजने के बिना वापस आती है।
क्यों उन्होंने नाम बदलने के बिना व्यवहार को नहीं बदला - मुझे पता नहीं है।
- 1. मोंगोडब तिथि
- 2. मोंगोडब एग्रीगेशन
- 3. मोंगोडब और सी #
- 4. मोंगोडब एकल डीबी प्रतिकृति
- 5. रनकॉमैंड नोडजेस-नेटिव-मोंगोडब
- 6. मोंगोडब अपर फेंकने डुप्लिकेटकेएक्सप्सेप्शन
- 7. दिन के बाद मोंगोडब एकत्रीकरण
- 8. नोडजेएस और नोड-मोंगोडब-मूल
- 9. मोंगोडब खोल कैसे शुरू करें?
- 10. क्या मोंगोडब के बिना _id स्ट्रिंग्स जैसे मोंगोडब बनाने का कोई तरीका है?
- 11. नोड-मोंगोडब-मूल - कर्सर प्रत्येक कॉल
- 12. एचबीएएस कैसंड्रा कॉचडब मोंगोडब..यह मौलिक अंतर?
- 13. स्प्रिंग-मोंगोडब स्ट्रिंग/intrieइंग enums स्ट्रिंग
- 14. मोंगोडब में रेडैक्ट मुझे अस्पष्ट लगता है
- 15. मोंगोडब: जांचें कि कोई बिंदु संग्रहीत बहुभुज
- 16. मोंगोडब में सस्ते/महंगा क्या ऑपरेशन हैं?
- 17. मोंगोडब और पिमोंगो में खाली खाली स्ट्रिंग
- 18. एक मोंगोडब पायथन कनेक्शन कैसे बंद करें?
- 19. मेरा मोंगोडब कॉल इतना धीमा क्यों है?
- 20. मोंगोडब: सरणी ऑब्जेक्ट्स द्वारा क्रमबद्ध दस्तावेज़
- 21. मोंगोडब में समझाएं() "nscanned" और "nscannedOjects"
- 22. मोंगोइड/मोंगोडब और एम्बेडेड दस्तावेजों से पूछताछ
- 23. मोंगोडब: $ ऑपरेटर बनाम एक ही प्रश्न
- 24. नोडजेस + मोंगोडब: $ ref फ़ील्ड कैसे पूछें?
- 25. आश्चर्यजनक रूप से मोंगोडब कैप्ड संग्रह
- 26. मोंगोडब या कैसंड्रा के साथ स्थानिक डेटा
- 27. सी # मोंगोडब मॉडल फेसबुक की तरह
- 28. कैसबा के साथ मोंगोडब के कनेक्शन कैसे पूल करें?
- 29. मोंगोडब: एकाधिक संग्रह या एक बड़ा संग्रह w/अनुक्रमणिका
- 30. विंडोज़ में एक्सएएमपीपी और मोंगोडब पर कैसे काम करें?
मोंगो डीबी दस्तावेज वास्तव में बहुत अच्छा है। क्या आप ने कोशिश की? – Jayan