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

MongoDB में प्रत्येक समूह के भीतर अधिकतम से संबंधित दस्तावेज़ को समूह और चयन कैसे करें?

आप $redact का इस्तेमाल कर सकते हैं इसे पूरा करने के लिए चरण। यह $sort के इस्तेमाल से बचता है और फिर एक $group करना या एक $unwind

नमूना कोड:

db.getCollection('sales').aggregate([
{$group:{"_id":"$hash",
         "max_num_sold":{$max:"$num_sold"},
         "records":{$push:"$$ROOT"}}},
{$redact:{$cond:[{$eq:[{$ifNull:["$num_sold","$$ROOT.max_num_sold"]},
                       "$$ROOT.max_num_sold"]},
                "$$DESCEND","$$PRUNE"]}},
])

परीक्षण डेटा:

db.getCollection('sales').insert([
{"title":"Foo","hash":17,"num_sold":49,"place":"ABC"},
{"title":"Bar","hash":18,"num_sold":55,"place":"CDF"},
{"title":"Baz","hash":17,"num_sold":55,"place":"JKN"},
{"title":"Spam","hash":17,"num_sold":20,"place":"ZSD"},
{"title":"Eggs","hash":18,"num_sold":20,"place":"ZDF"}
])

परीक्षा परिणाम:

{
        "_id" : 18,
        "max_num_sold" : 55,
        "records" : [
                {
                        "_id" : ObjectId("567874f2b506fc2193a22696"),
                        "title" : "Bar",
                        "hash" : 18,
                        "num_sold" : 55,
                        "place" : "CDF"
                }
        ]
}
{
        "_id" : 17,
        "max_num_sold" : 55,
        "records" : [
                {
                        "_id" : ObjectId("567874f2b506fc2193a22697"),
                        "title" : "Baz",
                        "hash" : 17,
                        "num_sold" : 55,
                        "place" : "JKN"
                }
        ]
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. आपके अनुप्रयोगों के लिए पारदर्शी डेटाबेस विफलता

  2. Docker-Compose का उपयोग करके MongoDB पर डेटा आयात करें

  3. एक MongoDB डेटाबेस में डेटा डिस्क पर कैसे संग्रहीत किया जाता है?

  4. एक ही दस्तावेज़ में दो सेटों के प्रतिच्छेदन का पता लगाने के लिए MongoDB एकत्रीकरण का उपयोग करें

  5. यदि सरणी में कोई मिलान नहीं मिला तो पहला तत्व लौटाएं