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

MongoDB में दस्तावेज़ों को क्रमबद्ध करने के 3 तरीके

MongoDB किसी विशेष क्रम में दस्तावेज़ों को सॉर्ट करने के कुछ तरीके प्रदान करता है। इनमें से प्रत्येक हमें दस्तावेजों को आरोही या अवरोही क्रम में क्रमबद्ध करने की अनुमति देता है।

$text . के परिणामों को क्रमित करने का विकल्प भी है खोज - परिकलित textScore . द्वारा छँटाई मेटाडेटा अवरोही क्रम में।

यहाँ MongoDB में दस्तावेज़ों को सॉर्ट करने के 3 तरीके दिए गए हैं।

cursor.sort() विधि

cursor.sort() विधि उस क्रम को निर्दिष्ट करती है जिसमें क्वेरी मेल खाने वाले दस्तावेज़ लौटाती है।

मान लीजिए हमारे पास employees . नामक संग्रह है निम्नलिखित दस्तावेजों के साथ:

{ "_id" : 1, "name" : "Bob", "salary" : 55000 }
{ "_id" : 2, "name" : "Sarah", "salary" : 128000 }
{ "_id" : 3, "name" : "Fritz", "salary" : 25000 }
{ "_id" : 4, "name" : "Christopher", "salary" : 45000 }
{ "_id" : 5, "name" : "Beck", "salary" : 82000 }
{ "_id" : 6, "name" : "Homer", "salary" : 1 }
{ "_id" : 7, "name" : "Bartholomew", "salary" : 1582000 }
{ "_id" : 8, "name" : "Zoro", "salary" : 300000 }
{ "_id" : 9, "name" : "Xena", "salary" : 382000 }

यहां उन दस्तावेज़ों को उनके salary . के अनुसार क्रमित करके लौटाने का एक उदाहरण दिया गया है फ़ील्ड को आरोही क्रम में, और उनका _id . भी फ़ील्ड:

db.employees.find().sort( { salary: 1, _id: 1 } )

परिणाम:

{ "_id" : 6, "name" : "Homer", "salary" : 1 }
{ "_id" : 3, "name" : "Fritz", "salary" : 25000 }
{ "_id" : 4, "name" : "Christopher", "salary" : 45000 }
{ "_id" : 1, "name" : "Bob", "salary" : 55000 }
{ "_id" : 5, "name" : "Beck", "salary" : 82000 }
{ "_id" : 2, "name" : "Sarah", "salary" : 128000 }
{ "_id" : 8, "name" : "Zoro", "salary" : 300000 }
{ "_id" : 9, "name" : "Xena", "salary" : 382000 }
{ "_id" : 7, "name" : "Bartholomew", "salary" : 1582000 }

यहाँ, हमने 1 . का प्रयोग किया है आरोही क्रम के लिए। यदि हम इसे अवरोही क्रम में चाहते हैं, तो हम केवल -1 . का उपयोग करेंगे इसके बजाय।

मेरे द्वारा _id शामिल करने का कारण क्रम में फ़ील्ड इसलिए है क्योंकि, यदि दो या दो से अधिक कर्मचारियों का वेतन समान है, तो _id फ़ील्ड का उपयोग उन दस्तावेज़ों को आपस में क्रमबद्ध करने के लिए किया जा सकता है।

हालांकि यह मामूली लग सकता है, यह MongoDB को हर बार क्वेरी चलाने पर उन दस्तावेज़ों को एक अलग क्रम में वापस करने से रोकेगा।

आप $text . के परिणामों को भी क्रमित कर सकते हैं तलाशी। MongoDB देखें sort() उदाहरण के लिए।

$sort एकत्रीकरण पाइपलाइन चरण

एकत्रीकरण पाइपलाइन ढांचे का उपयोग करते समय, आप $sort . का उपयोग कर सकते हैं सभी इनपुट दस्तावेज़ों को क्रमबद्ध करने के लिए चरण और उन्हें क्रमबद्ध क्रम में पाइपलाइन में लौटाता है।

यहां बताया गया है कि हम $sort का उपयोग कैसे कर सकते हैं पिछले उदाहरण के समान परिणाम वापस करने के लिए। सिवाय, आइए उन्हें अवरोही में क्रमबद्ध करें इस बार ऑर्डर करें:

db.employees.aggregate(
   [
     { $sort : { salary : -1, _id: 1 } }
   ]
)

परिणाम:

{ "_id" : 7, "name" : "Bartholomew", "salary" : 1582000 }
{ "_id" : 9, "name" : "Xena", "salary" : 382000 }
{ "_id" : 8, "name" : "Zoro", "salary" : 300000 }
{ "_id" : 2, "name" : "Sarah", "salary" : 128000 }
{ "_id" : 5, "name" : "Beck", "salary" : 82000 }
{ "_id" : 1, "name" : "Bob", "salary" : 55000 }
{ "_id" : 4, "name" : "Christopher", "salary" : 45000 }
{ "_id" : 3, "name" : "Fritz", "salary" : 25000 }
{ "_id" : 6, "name" : "Homer", "salary" : 1 }

आप $text . के परिणामों को भी क्रमित कर सकते हैं तलाशी। देखें MongoDB $sort उदाहरण के लिए।

$orderBy क्वेरी संशोधक

$orderBy क्वेरी संशोधक का उपयोग दो रूपों में से एक में किया जा सकता है।

इस तरह:

db.employees.find( { $query: {}, $orderBy: { salary: 1 } } )

या इस तरह::

db.employees.find()._addSpecial( "$orderby", { salary : 1 } )

$orderBy क्वेरी संशोधक को mongo . में हटा दिया गया है v3.2 के बाद से खोल, लेकिन मैंने इसे वैसे भी यहां शामिल करने का निर्णय लिया। अधिक जानकारी के लिए MongoDB दस्तावेज़ देखें।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Docker . में node.js के माध्यम से MongoDB से कनेक्ट नहीं हो सकता

  2. नेवला क्वेरी जहां मान शून्य नहीं है

  3. रेडिस बनाम मोंगोडीबी:आपको क्या जानना चाहिए

  4. क्या कोई कारण हैं कि मुझे अपने रीस्टफुल यूआरएल में ऑब्जेक्ट आईडी का उपयोग क्यों नहीं करना चाहिए/नहीं करना चाहिए?

  5. उल्का संग्रह पर प्रश्नों के आधार पर समूह