MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDb में अगला दस्तावेज़ ढूँढना

स्पष्ट sort() जोड़ना सबसे अच्छा है मानदंड यदि आप परिणामों का एक पूर्वानुमेय क्रम चाहते हैं।

यह मानते हुए कि आप जिस क्रम के बाद हैं, वह "सम्मिलन आदेश" है और आप MongoDB के डिफ़ॉल्ट जेनरेट किए गए ObjectIds का उपयोग कर रहे हैं, तो आप ObjectId के आधार पर क्वेरी कर सकते हैं:

// Find next product created
db.products.find({_id: {$gt: ObjectId("4fdbaf608b446b0477000142") }}).limit(1)

ध्यान दें कि यह उदाहरण केवल इसलिए काम करता है:

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

तो वास्तव में, यह निहित प्रकार समान है:

db.products.find({_id: {$gt: ObjectId("4fdbaf608b446b0477000142" )}}).sort({_id:1}).limit(1);

यदि आपने "अगला" उत्पाद (उदाहरण के लिए, एक category) को खोजने के लिए अर्हता प्राप्त करने के लिए क्वेरी में और मानदंड जोड़े हैं ), क्वेरी किसी भिन्न अनुक्रमणिका का उपयोग कर सकती है और आदेश आपकी अपेक्षा के अनुरूप नहीं हो सकता है।

आप explain() के साथ इंडेक्स उपयोग की जांच कर सकते हैं ।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. इंडेक्स कैसे करें ताकि टेक्स्ट सर्च और सॉर्ट इंडेक्स का उपयोग कर सके?

  2. मैं MongoDB में सभी दस्तावेज़ों के लिए एक फ़ील्ड का नाम कैसे बदल सकता हूँ?

  3. मुनिन मोंगोडब प्लगइन नहीं दिखा रहा है। . .?

  4. स्प्रिंग डेटा MongoDB - खाली वस्तुओं पर ध्यान न दें

  5. SQL में अधिकतम मान वाली पंक्ति का चयन करने के 3 तरीके