कई तरीके हैं,
$match
अवांछित डेटा समाप्त करें$lookup
संग्रह में शामिल होने के लिए$unwind
सरणी को फिर से बनाने के लिए$group
सरणी को फिर से बनाने के लिए और$sum
$cond
. का उपयोग करके 1 से बढ़ाने में मदद करता है हालत
ये रही स्क्रिप्ट
db.Accounts.aggregate([
{ $match: { _id: 2 } },
{
$lookup: {
from: "Responses",
localField: "_id",
foreignField: "accountId",
as: "responses"
}
},
{
$unwind: "$responses"
},
{
$group: {
_id: "$_id",
name: { $first: "$name" },
trueResponses: {
$sum: {
$cond: [{ $eq: [ "$responses.res", true]},1,0]
}
},
falseResponses: {
$sum: {
$cond: [{ $eq: [ "$responses.res", false]},1,0]
}
}
}
}
])
कार्य मोंगो खेल का मैदान