Sunday, 15 May 2011

indexing - Mongodb, getIndexes. Zero in 'key' -


माँगोड शेल में "getIndexes" कमांड का आउटलुक है:

  db Users.getIndexes () [{"v": 1, "key": {"ऑनलाइन": 1, "क्षेत्र": 1, "स्थिति": 0}, "ns": "pr.users", "name" : "Online_1_region_1_status_-1"}, {"वी": 1, "कुंजी": {"जन्मतिथि": 1, "स्थिति": 1, "क्षेत्र": 1, "लिंग": 1, "प्रोफ़ाइल। समय": "कुंजी" मानों में "0" का क्या अर्थ है? 1}, "ns": "pr.users", "name": "birthdate_1_status_1_region_1_sex_1_profile.uptime_-1"}]   

? डॉक्स में () केवल "1" और "-1" हैं।

system.indexes.key

इसमें एक दस्तावेज़ है जिसमें इंडेक्स में रखी चाबियाँ हैं, और सूचकांक का क्रम इंडेक्स या तो अवरोही या आरोही क्रम हो सकते हैं। ऋणात्मक एक का मान (जैसे -1) इंगित करता है कि सूचकांक क्रम अवरोही क्रम में क्रमबद्ध है, जबकि एक सकारात्मक मूल्य (जैसे 1) एक आरोही क्रम में क्रमबद्ध सूचकांक को इंगित करता है।

धन्यवाद!

मैं कहूंगा कि यह अपरिभाषित व्यवहार है नीचे दिए गए उदाहरणों को देखते हुए, मानो वास्तव में 0 पर सेट इंडेक्स वेल्यू दिशा से भ्रमित हो जाता है।

सरल परीक्षण:

अवरोही सूचकांक
  db.test.ensureIndex ({t: 1})   

टेस्ट कलेक्शन को फ़ील्ड 't' द्वारा क्रमबद्ध करते समय इस्तेमाल कर्सर को देखते हैं

  db प्रयुक्त कर्सर:  "कर्सर": "BtreeCursor t_1"      
  db.test.find.sort ({t: -1}) समझाएं ()   

प्रयुक्त कर्सर: "कर्सर": "BtreeCursor t_1 reverse "

यह अपेक्षित व्यवहार है।

आरोही सूचकांक
  db.test.ensureIndex ({t: -1}) < / Code>  

-

  db.test.find.sort ({t: 1})। समझाओ ()   

प्रयुक्त कर्सर: "कर्सर": "BtreeCursor t_-1 रिवर्स"

  db.test.find.sort ({t: -1}) समझाओ ()   

प्रयुक्त कर्सर: "कर्सर": "BtreeCursor t_-1"

यह भी व्यवहार की उम्मीद है। < एच 2> सूचकांक 0

  db.test.ensu रीइंडेक्स ({टी: 0})   

-

  db.test.find.sort ({t: 1})। समझाओ ()   

प्रयुक्त कर्सर: "कर्सर": "BtreeCursor t_0 reverse"

  db.test.find.sort ({t: प्रयुक्त कर्सर:  "कर्सर": "BtreeCursor t_0 reverse"   

दोनों प्रकार के निर्देशों के लिए मंगो है रिवर्स कर्सर का उपयोग करना

सुनिश्चित नहीं है कि क्यों मोंगो इस तरह से चीजों को संभाल नहीं रहा है। दस्तावेज़ीकरण में भी सरल अनुच्छेद पर्याप्त होगा।

मजेदार बात, आप सूचकांक दिशा के रूप में भी स्ट्रिंग सेट कर सकते हैं।

  {"v": 1, "key": { "T": "sjdhfsdfsdf"}, "ns": "playground.test", "name": "t_"}   

या इस तरह से बातें:

  db.test.ensureIndex ({t: ObjectId ()}, {additionalParam: "dfsdf"}) ... {"v": 1, "key": {"t": ऑब्जेक्टआईडी ("51527ebaa845a81ea8434d69") }, "Ns": "playground.test", "name": "t_", "अतिरिक्त पैरा": "dfsdf"}    

No comments:

Post a Comment