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

मोंगो में मनमानी सूची द्वारा वस्तुओं की सरणी को कैसे क्रमबद्ध करें?

आप मूल जावास्क्रिप्ट सॉर्ट () सरणी पर विधि cursor.toArray() विधि:

var order = ["food", "coffee", "grocery"];
var docs = db.collection.find().toArray().sort(function(a, b) { 
    return order.indexOf(a.category) - order.indexOf(b.category);
});
printjson(docs);

नमूना आउटपुट

[
    {
        "_id" : "4JW7miNITl",
        "category" : "food"
    },
    {
        "_id" : "4Je4kmrrbZ",
        "category" : "coffee"
    },
    {
        "_id" : "4JgAh3N86x",
        "category" : "coffee"
    },
    {
        "_id" : "4JEEuhNIae",
        "category" : "grocery"
    }
]

नए MongoDB 3.4 संस्करण के साथ, आपको स्थानीय MongoDB ऑपरेटरों के उपयोग का लाभ उठाने में सक्षम होना चाहिए $addFields और $indexOfArray एकत्रीकरण ढांचे में।

  • $addFields पाइपलाइन चरण आपको $ की अनुमति देता है परियोजना अन्य सभी मौजूदा क्षेत्रों को जाने बिना मौजूदा दस्तावेज़ों में नए फ़ील्ड।
  • $indexOfArray अभिव्यक्ति किसी दिए गए सरणी में विशेष तत्व की स्थिति लौटाती है।

तो इसे पूरी तरह से डालते हुए आप निम्नलिखित समग्र ऑपरेशन (MongoDB 3.4 के साथ) आज़मा सकते हैं:

var order = ["food", "coffee", "grocery"],
    projection = { 
        "$addFields" : { 
            "__order" : { "$indexOfArray" : [ order, "$category" ] } 
        } 
    },
    sort = { "$sort" : { "__order" : 1 } };
db.collection.aggregate([ projection, sort]);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेवला:कई प्रविष्टियों के साथ मिश्रित स्कीमा प्रकार के दस्तावेज़ खोजें

  2. मोंगोडब में गतिशील, गैर-अद्वितीय क्षेत्रों पर पूछताछ और छँटाई करते समय रंगे हुए पृष्ठांकन

  3. समय क्षेत्र पर विचार किए बिना मोंगोडीबी में स्टोर की तारीख

  4. MongoDB स्ट्रिंग को ऐरे में बदलें

  5. मोंगोडीबी:सी # ड्राइवर के साथ $ नमूना का उपयोग करना