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

मोंगोडब में समूह के साथ मैक्स () का चयन करें

मैंने इस प्रकार मोंगो संग्रह बनाया है।

{ "_id" : ObjectId("4fb36bfd3d1c88bfa15103b1"), "name" : "bob", "value" : 5 }
{ "_id" : ObjectId("4fb36c033d1c88bfa15103b2"), "name" : "bob", "value" : 3 }
{ "_id" : ObjectId("4fb36c063d1c88bfa15103b3"), "name" : "bob", "value" : 7 }
{ "_id" : ObjectId("4fb36c0c3d1c88bfa15103b4"), "name" : "john", "value" : 2 }
{ "_id" : ObjectId("4fb36c103d1c88bfa15103b5"), "name" : "john", "value" : 4 }
{ "_id" : ObjectId("4fb36c143d1c88bfa15103b6"), "name" : "john", "value" : 8 }
{ "_id" : ObjectId("4fb36c163d1c88bfa15103b7"), "name" : "john", "value" : 6 }

फिर निम्नलिखित कोड का उपयोग करके मैं इसे उनके नाम और अधिकतम (मान) द्वारा समूहित करता हूं

db.table1.group(
    {key: {name:true},
        reduce: function(obj,prev) { 
            if (prev.maxValue < obj.value) { 
                prev.maxValue = obj.value; 
            }  
        },
    initial: { maxValue: 0 }}
);

परिणाम

. के रूप में दिखाया गया है
[
    {
        "name" : "bob",
        "maxValue" : 7
    },
    {
        "name" : "john",
        "maxValue" : 8
    }
]

यह एकत्रीकरण ढांचे के साथ बहुत आसान है। आप समेकन ढांचे का उपयोग करके निम्न कोड के साथ समान परिणाम प्राप्त कर सकते हैं।

db.table1.aggregate([
    {
       $group:{_id:"$name", "maxValue": {$max:"$value"}}
    }
]);


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - ऐरे तत्व को अपडेट या पुश करने के लिए $सेट

  2. $lookup . के बाद तत्वों की सरणी के रूप में मान प्राप्त करें

  3. nosql (मोंगोडब और नेवला) के साथ कई से कई संबंध

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

  5. नेवला मोंगोडब वस्तुओं की एक सरणी को क्वेरी करता है