यह कुछ चरणों में किया जा सकता है। पहला कदम $match
, $unwind
और $group
ऑपरेटर जो प्रत्येक दस्तावेज़ के लिए न्यूनतम स्कोर खोजने के लिए आपके दस्तावेज़ों को सुव्यवस्थित करते हैं:
lowest_scores_docs = db.school.aggregate([
{ "$match": {"scores.type": "homework"} },
{ "$unwind": "$scores" }, { "$match": {"scores.type": "homework"} },
{ "$group": { "_id":"$_id", "lowest_score": {"$min": "$scores.score" } } } ] )
दूसरा चरण है ऊपर दिए गए शब्दकोश के माध्यम से लूप करना और का उपयोग करना $pull
इस प्रकार सरणी से तत्व को निकालने के लिए अद्यतन क्वेरी में ऑपरेटर:
for result in lowest_scores_docs["result"]:
db.school.update({ "_id": result["_id"] },
{ "$pull": { "scores": { "score": result["lowest_score"] } } } )