2013-03-07 8 views
8

मैं अपनी अनुक्रमणिका को एक विशिष्ट तरीके से क्रमबद्ध करना चाहता हूं (-1, 1) और यह सुनिश्चित करना चाहता हूं कि शून्य मान इंडेक्स के शीर्ष पर हैं। मैं यह कैसे सुनिश्चित कर सकता हूं?मोंगोडीबी इंडेक्स में शून्य मूल्य कैसे क्रमबद्ध हैं?

+1

जब आप उन्हें अंतिम रूप से आना चाहते हैं तो शून्य मान शीर्ष पर होंगे, आपको – Sammaye

+0

में शून्य से कुछ और डालने की आवश्यकता है। क्या इसका मतलब यह भी है कि अगर वे .findOne() का उपयोग करते हैं, तो वे शीर्ष पर होंगे, और उन्हें अनुक्रमित किया गया है? – user1680104

+0

findOne केवल एक दस्तावेज़ मिलेगा। वे खोजने पर शीर्ष पर होना चाहिए() हालांकि – Sammaye

उत्तर

4

यदि आप अवरोही क्रमबद्ध कर रहे हैं और आप अंत में null मान देख रहे हैं, तो यह इस प्रकार का डिफ़ॉल्ट व्यवहार होगा।

वहाँ वास्तव में बहुत है कि उस व्यवहार को बदलने के किया जा सकता है नहीं है, लेकिन एक समाधान है कि आप परिणाम आप देख रहे हैं दे देंगे दो के बजाय एक प्रश्नों करना है:

db.Collection.find({ a: null }); 
db.Collection.find({ a: { $ne: null } }).sort({ a: -1, b: 1 }); 
+0

क्या मैं किसी भी तरह से एक रिवर्स सॉर्टेड इंडेक्स बना सकता हूं और इसे खोजने के साथ इसका उपयोग कर सकता हूं? तो अगर यह शून्य मूल्यों के साथ कोई है, तो यह सिर्फ मुझे एक शून्य मूल्य देता है? – user1680104

+0

@ user1680104 'findOne' सॉर्टिंग का समर्थन नहीं करता है। हालांकि यदि आप शून्य खोज को खोजने के लिए 'findOne' का उपयोग करने में रुचि रखते हैं तो आप कुछ ऐसा कर सकते हैं जैसे' db.collection.findOne ({a: null}) ' –

+0

मुझे पता है। मैं बस मूल रूप से एक "अगर एक शून्य के साथ इसे ले लेना चाहता हूं, तो एक प्रश्न के बिना एक ले लो"। – user1680104

0

आपने कहा है "मैं बस मूल रूप से एक होना चाहता हूं 'अगर शून्य वाला कोई व्यक्ति इसे ले लेता है, तो बिना किसी प्रश्न के' एक को ले जाएं", db.collection.find()। Sort()। सीमा (1) के बारे में कैसे?

संबंधित मुद्दे