Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में शब्दों द्वारा सॉर्ट करना

MongoDB में $addFields और $cond का उपयोग करके कस्टम क्रम में सॉर्ट करना

MongoDB में किसी फील्ड के मानों के आधार पर कस्टम क्रम (वर्णानुक्रम नहीं) में सॉर्ट करने के लिए $addFields के साथ $cond का उपयोग करके एक सॉर्ट की फील्ड बनाएं, फिर उस पर सॉर्ट करें।

उदाहरण: संग्रह और दस्तावेज़ बनाना

> db.demo62.insertOne({"Subject":"MySQL"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e287084cfb11e5c34d8992f") }
> db.demo62.insertOne({"Subject":"MongoDB"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e287085cfb11e5c34d89930") }
> db.demo62.insertOne({"Subject":"Java"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e287086cfb11e5c34d89931") }

सभी दस्तावेज़ देखना

> db.demo62.find();

आउटपुट:

{ "_id" : ObjectId("5e287084cfb11e5c34d8992f"), "Subject" : "MySQL" }
{ "_id" : ObjectId("5e287085cfb11e5c34d89930"), "Subject" : "MongoDB" }
{ "_id" : ObjectId("5e287086cfb11e5c34d89931"), "Subject" : "Java" }

कस्टम क्रम में सॉर्ट करने के लिए एग्रीगेशन (MongoDB, MySQL, Java)

> db.demo62.aggregate([
  {
    $addFields: {
      sortByWords: {
        $cond: [
          { $eq: ["$Subject", "MongoDB"] },
          0,
          { $cond: [{ $eq: ["$Subject", "MySQL"] }, 1, 2] }
        ]
      }
    }
  },
  {
    $sort: { sortByWords: 1 }
  }
]);

आउटपुट:

{ "_id" : ObjectId("5e287085cfb11e5c34d89930"), "Subject" : "MongoDB", "sortByWords" : 0 }
{ "_id" : ObjectId("5e287084cfb11e5c34d8992f"), "Subject" : "MySQL", "sortByWords" : 1 }
{ "_id" : ObjectId("5e287086cfb11e5c34d89931"), "Subject" : "Java", "sortByWords" : 2 }

व्याख्या:

  • $addFields - नया फील्ड sortByWords जोड़ता है
  • $cond - यदि Subject == "MongoDB" तो 0, अन्यथा यदि "MySQL" तो 1, अन्यथा 2
  • $sort: {sortByWords: 1} - संख्यात्मक मान के आधार पर आरोही क्रम

बेहतर विकल्प (MongoDB 3.6+): $switch का उपयोग करें

db.demo62.aggregate([
  {
    $addFields: {
      sortByWords: {
        $switch: {
          branches: [
            { case: { $eq: ["$Subject", "MongoDB"] }, then: 0 },
            { case: { $eq: ["$Subject", "MySQL"] }, then: 1 }
          ],
          default: 2
        }
      }
    }
  },
  { $sort: { sortByWords: 1 } }
])

अन्य उपयोग: प्राथमिकता-आधारित सॉर्टिंग, स्टेटस ऑर्डर (Pending, Approved, Rejected), आदि।

  1. - MongoDB में दस्तावेज़ छोड़ें (skip)

    MongoDB में skip() का उपयोग करके दस्तावेज़ छोड़ना skip() विधि कर्सर से पहले n दस्तावेज़ों को छोड़ देती है। एग्रीगेशन पाइपलाइन में $skip स्टेज का उपयोग किया जाता है। सैंपल डेटा बनाना > db.demo263.insertOne({_id:100}); { acknowledged : true, insertedId : 100 } > db.demo263.insertOne({_id:200});

  1. - MongoDB में सबडॉक्यूमेंट्स को सॉर्ट करने के लिए क्वेरी

    MongoDB एग्रीगेशन के साथ सबडॉक्यूमेंट्स सॉर्ट करना नेस्टेड ऐरे में सबडॉक्यूमेंट्स को उनकी गणना की गई संपत्ति के आधार पर सॉर्ट करें। कलेक्शन बनाना > db.demo136.insertOne( { Name: Chris, Details: [ { Id: 101, EmployeeName: Mike,

  1. - MongoDB में नेस्टेड सरणी को कैसे सॉर्ट करें?

    MongoDB में नेस्टेड सरणी को सॉर्ट करने के लिए, $sort का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo505.insertOne( { details: [ { Name:Chris, Score:58 }, { Name:Bob, Score:45 }, { Name:John, Score:68 }, { Name:David, Score:46 } ] }); { ackn