$maxkey. से अधिकतम मान प्राप्त करने के लिए फ़ील्ड की सरणीa, यह-15return लौटाएगा आपके दस्तावेज़ों के अनुसार$filter-15. के बराबर वस्तु प्राप्त करने के लिए मूल्य$first$filter. से लौटे परिणाम से पहली वस्तु प्राप्त करें
db.collection.aggregate([
{
$addFields: {
winner: {
$first: {
$filter: {
input: "$key",
cond: { $eq: ["$$this.a", { $max: "$key.a" }] }
}
}
}
}
}
])
दूसरा विकल्प $reduce . का उपयोग करके ऑपरेटर,
- प्रारंभिक फ़ील्ड सेट करें
maxValueकम करने में,key. से अधिकतम मान फ़ील्ड की सरणीa - स्थिति जांचें यदि
maxValueऔरaमूल्य मिलान फिर अधिकतम वस्तु लौटाएं
db.collection.aggregate([
{
$addFields: {
winner: {
$reduce: {
input: "$key",
initialValue: { maxValue: { $max: "$key.a" } },
in: {
$cond: [
{ $eq: ["$$this.a", "$$value.maxValue"] },
"$$this",
"$$value"
]
}
}
}
}
}
])