$max
key
. से अधिकतम मान प्राप्त करने के लिए फ़ील्ड की सरणीa
, यह-15
return लौटाएगा आपके दस्तावेज़ों के अनुसार$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"
]
}
}
}
}
}
])