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

MongoDB में मूल्य आधारित ऑर्डर कैसे करें?

आपको $project . की आवश्यकता है MongoDB शब्दों में प्रत्येक मान के लिए एक "वजन", और इसका अर्थ है .aggregate() विधि:

db.users.aggregate([
    { "$project": {
        "status": 1,
        "a_field": 1,
        "another_field": 1,
        "pretty_much_every_field": 1,
        "weight": {
            "$cond": [
                { "$eq": [ "$status", "A" ] },
                10,
                { "$cond": [ 
                    { "$eq": [ "$status", "B" ] },
                    8,
                    { "$cond": [
                        { "$eq": [ "$status", "C" ] },
                        6,
                        { "$cond": [
                            { "$eq": [ "$status", "D" ] },
                            4,
                            0
                        ]}
                    ]}
                ]}
            ] 
        }
    }},
    { "$sort": { "weight": -1 } }
])

टर्नरी का नेस्टेड उपयोग $cond "स्थिति" के लिए प्रत्येक आइटम को दिए गए तर्कों के क्रम में एक आदेशित "वजन" मान के रूप में माना जा सकता है।

यह बदले में $sort . को खिलाया जाता है , जहां अनुमानित मूल्य ("वजन") का उपयोग भारित मिलान द्वारा प्राप्त परिणामों को क्रमबद्ध करने के लिए किया जाता है।

तो इस तरह से "स्थिति" मिलान के क्रम को वरीयता दी जाती है, जो क्रमबद्ध परिणामों में सबसे पहले दिखाई देता है।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB में दस्तावेज़ अपडेट करने के 4 तरीके

  2. MongoDB GridFS के साथ समस्या Node.JS के साथ फ़ाइलें सहेजना

  3. एक नेवला मॉडल को उस फ़ील्ड के साथ पॉप्युलेट करें जो एक आईडी नहीं है

  4. नेवला की समय सीमा समाप्त संपत्ति ठीक से काम नहीं कर रही है

  5. नेवला ऑब्जेक्ट आईडी को सरणी से खींचता है