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

MongoDB सरणी तत्वों द्वारा दस्तावेज़ों को सॉर्ट करता है

आप इसे सरणी के साथ नहीं कर सकते हैं, और यहां मुख्य समस्या यह है कि आप मिलान किए गए तत्व पर "सॉर्ट" करना चाहते हैं। यदि आप इस तरह के परिणामों को क्रमबद्ध करना चाहते हैं तो आपको .aggregate() . का उपयोग करना होगा बजाय। या तो इस रूप में:

आधुनिक MongoDB संस्करणों के लिए:

db.maps.aggregate([
    { "$match": { "points.type": "type1" }},
    { "$addFields": {
        "order": {
            "$filter": {
              "input": "$points",
              "as": "p",
              "cond": { "$eq": [ "$$p.type", "type1" ] }
            }
        }
    }},
    { "$sort": { "order": 1 } }
])

MongoDB 2.6 से 3.0 के लिए

db.maps.aggregate([
   { $match: { 'points.type': 'type1' } },
    {
     $project: {
       points: {
        $setDifference: [
          {
            $map: {
              input: '$points',
              as: 'p',
              in: {
                $cond: [
                  { $eq: ['$$p.type', 'type1'] },
                  '$$p',
                  false,
                ]
              }
            }
          },
          [false]
        ]
      }
    }
  },
  { $sort: { 'points.distanceToSpawn': 1 } },
]);

या MongoDB 2.6 से पहले के संस्करणों में कम कुशलता से:

db.maps.aggregate([
    { "$match": { "points.type": "type1" }},
    { "$unwind": "$points" },
    { "$match": { "points.type": "type1" }},
    { "$group": {
        "_id": "$_id",
        "points": { "$push": "$points" }
    }},
    { "$sort": { "points.ditanceToSpawn": 1 } }         
])

सही तत्वों से मेल खाने का यही एकमात्र तरीका है और उन्हें "सॉर्ट" ऑपरेशन में माना जाता है। डिफ़ॉल्ट कर्सर सॉर्ट अन्यथा सरणी तत्वों में फ़ील्ड के मानों पर विचार करेगा जो इसके बजाय आपके चयनित "प्रकार" से मेल नहीं खाते।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. शीर्ष मोंगोडीबी संसाधन

  2. MongoDB को सेवा के रूप में प्रारंभ नहीं कर सकता

  3. MongoDB में एकल फ़ील्ड में सरणी में स्ट्रिंग मानों को संयोजित करें

  4. एक ही MongoDB अपडेट में पुश और सेट ऑपरेशंस

  5. इंडेक्स मोंगो सुनिश्चित करते हुए बहुत सारी खुली फाइलें