MongoDB एग्रीगेशन परिणाम को वेरिएबल में स्टोर करना
इसके लिए aggregate() का उपयोग करें।
कलेक्शन बनाना
> db.demo142.insertOne({"Value":50});
{ "acknowledged": true, "insertedId": ObjectId("5e32e9c6fdf09dd6d08539b2") }
> db.demo142.insertOne({"Value":45});
{ "acknowledged": true, "insertedId": ObjectId("5e32e9cafdf09dd6d08539b3") }
> db.demo142.insertOne({"Value":60});
{ "acknowledged": true, "insertedId": ObjectId("5e32e9cdfdf09dd6d08539b4") }
> db.demo142.insertOne({"Value":55});
{ "acknowledged": true, "insertedId": ObjectId("5e32e9d0fdf09dd6d08539b5") }
> db.demo142.insertOne({"Value":50});
{ "acknowledged": true, "insertedId": ObjectId("5e32e9d9fdf09dd6d08539b6") }
सभी डॉक्यूमेंट्स
> db.demo142.find();
{ "_id": ObjectId("5e32e9c6fdf09dd6d08539b2"), "Value": 50 }
{ "_id": ObjectId("5e32e9cafdf09dd6d08539b3"), "Value": 45 }
{ "_id": ObjectId("5e32e9cdfdf09dd6d08539b4"), "Value": 60 }
{ "_id": ObjectId("5e32e9d0fdf09dd6d08539b5"), "Value": 55 }
{ "_id": ObjectId("5e32e9d9fdf09dd6d08539b6"), "Value": 50 }
एग्रीगेशन परिणाम को वेरिएबल में स्टोर करना
> var query = db.demo142.aggregate(
{ "$group": { "_id": null, "MaxValue": { "$max": "$Value" } } }
);
> var largestValue = query.toArray()[0]["MaxValue"];
> printjson(largestValue);
परिणाम
60
व्याख्या
- aggregate(): कर्सर लौटाता है, तत्काल परिणाम नहीं
- $group: _id: null का अर्थ है सभी डॉक्यूमेंट्स को एक ग्रुप में रखना
- $max: Value फील्ड का अधिकतम मान ढूंढता है
- toArray(): कर्सर को ऐरे में बदलता है
- [0]["MaxValue"]: पहले (और एकमात्र) परिणाम से MaxValue निकालता है
सरल विकल्प
// findOne के साथ सॉर्ट
var maxDoc = db.demo142.findOne({}, { sort: { Value: -1 } });
var largestValue = maxDoc.Value;
यह सरल मामलों के लिए अधिक कुशल है क्योंकि यह इंडेक्स का उपयोग कर सकता है।