अंतर के आधार पर छाँटने के लिए, MongoDB में समुच्चय () का उपयोग करें। आइए दस्तावेजों के साथ एक संग्रह बनाएं -
> db.demo155.insertOne({"Scores":[{"Value":45},{"Value":50}]}); { "acknowledged" : true, "insertedId" : ObjectId("5e354584fdf09dd6d08539e3") } > db.demo155.insertOne({"Scores":[{"Value":60},{"Value":10}]}); { "acknowledged" : true, "insertedId" : ObjectId("5e35458efdf09dd6d08539e4") } > db.demo155.insertOne({"Scores":[{"Value":100},{"Value":95}]}); { "acknowledged" : true, "insertedId" : ObjectId("5e354599fdf09dd6d08539e5") }
संग्रह से सभी दस्तावेज़ों को खोजने () विधि की सहायता से प्रदर्शित करें -
> db.demo155.find();
यह निम्नलिखित आउटपुट उत्पन्न करेगा -
{ "_id" : ObjectId("5e354584fdf09dd6d08539e3"), "Scores" : [ { "Value" : 45 }, { "Value" : 50 } ] } { "_id" : ObjectId("5e35458efdf09dd6d08539e4"), "Scores" : [ { "Value" : 60 }, { "Value" : 10 } ] } { "_id" : ObjectId("5e354599fdf09dd6d08539e5"), "Scores" : [ { "Value" : 100 }, { "Value" : 95 } ] }
MongoDB के साथ सरणी सामग्री में अंतर के आधार पर छाँटने के लिए क्वेरी निम्नलिखित है -
> db.demo155.aggregate([ ... { "$match": { "Scores.1": { "$exists": true } } }, ... { "$project": { ... "Scores": "$Scores", ... "sub": { ... "$let": { ... "vars": { ... "f": { "$arrayElemAt": [ "$Scores", -2 ] }, ... "l": { "$arrayElemAt": [ "$Scores", -1 ] } ... }, ... "in": { "$subtract": [ "$$l.Value", "$$f.Value" ] } ... } ... } ... }}, ... { "$sort": { "sub": -1 } } ... ])
यह निम्नलिखित आउटपुट उत्पन्न करेगा -
{ "_id" : ObjectId("5e354584fdf09dd6d08539e3"), "Scores" : [ { "Value" : 45 }, { "Value" : 50 } ], "sub" : 5 } { "_id" : ObjectId("5e354599fdf09dd6d08539e5"), "Scores" : [ { "Value" : 100 }, { "Value" : 95 } ], "sub" : -5 } { "_id" : ObjectId("5e35458efdf09dd6d08539e4"), "Scores" : [ { "Value" : 60 }, { "Value" : 10 } ], "sub" : -50 }