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

आइटम को मूल्य mongodb द्वारा क्रमबद्ध करें

इसे एक सामान्य अवधारणा के रूप में "भार" कहा जाता है। तो बिना किसी अन्य तंत्र के, फिर आप इसे MongoDB क्वेरी में तार्किक रूप से दस्तावेज़ में "वजन" के मानों को "प्रोजेक्ट" करके तार्किक रूप से संभालते हैं।

आपके दस्तावेज़ में मौजूद फ़ील्ड को "प्रोजेक्ट करने" और बदलने के लिए आपका तरीका .एग्रीगेट () विधि, और विशेष रूप से यह $project पाइपलाइन चरण:

db.collection.aggregate([
    { "$project": {
        "getthisfirst": 1,
        "weight": {
            "$cond": [
                { "$eq": [ "$getthisfirst", "yes" ] },
                10,
                { "$cond": [
                    { "$eq": [ "$getthisfirst", "maybe" ] },
                    5,
                    0
                ]}
            ]
        }
    }},
    { "$sort": { "weight": -1 } }
]);

$cond यहां एक ऑपरेटर है "ternary" ( if/then/else ) शर्त जहां पहला तर्क बूलियन true|false पर पहुंचने वाला एक सशर्त स्टेटमेंट है . अगर सत्य "फिर" दूसरा तर्क परिणाम के रूप में लौटाया जाता है, अन्यथा "अन्य" या तीसरा तर्क प्रतिक्रिया में वापस किया जाता है।

इस "नेस्टेड" मामले में, जहां "हां" एक मैच है तो एक निश्चित "वेट" स्कोर असाइन किया जाता है, अन्यथा हम अगली कंडीशन टेस्ट पर आगे बढ़ते हैं जहां "शायद" एक मैच होता है तो एनोटर स्कोर असाइन किया जाता है, या अन्यथा स्कोर 0 . है चूंकि हमारे पास मिलान करने के लिए केवल तीन संभावनाएं हैं।

फिर $sort शीर्ष पर सबसे बड़े "वजन" वाले परिणामों को अच्छी तरह से "आदेश" (घटते क्रम में) के लिए शर्त लागू की जाती है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. स्प्रिंग एंगुलर के साथ पावर बीआई इंटीग्रेशन

  2. MongoDB - क्वेरी को कैननिकलाइज़ नहीं कर सकता:BadValue अज्ञात ऑपरेटर:$meta

  3. विंडोज 7 पर मोंगो डीबी डीबीपाथ कैसे सेट करें?

  4. MongoDB:सरणी मिलान पैरामीटर में उप-दस्तावेज़ खोजें

  5. नेवला डेटाबेस में अंतिम दस प्रविष्टियाँ ढूँढता है