У меня есть коллекция, как показано ниже.
{
"userId" : "1",
"feedbackGiven" : true
}
{
"userId" : "1",
"feedbackGiven" : false
}
{
"userId" : "1",
"feedbackGiven" : true
}
{
"userId" : "2",
"feedbackGiven" : false
}
{
"userId" : "2",
"feedbackGiven" : true
}
Мне нужно сгруппировать ее по userId и получить два значения, как count of totalGivenFeedback и количество ложных FeedbackGiven.
Я пробовал запрос ниже.
db.collection.aggregate([
{
$group: { _id: "$userId", feedbackGiven: { $push : "$feedbackGiven"} }
}
])
Это дает результаты, как показано ниже.
{
"_id" : "1",
"feedbackGiven" : [
true,
false,
true
]
}
{
"_id" : "2",
"feedbackGiven" : [
false,
true
]
}
Я могу получить общее количество отзывов и ложных отзывов, используя приведенные выше результаты из моего кода JavaScript.
Но мой вопрос, есть ли способ получить его, используя запрос MongoDB.
Я ожидаю результатов, как показано ниже.
{
"_id" : "1",
"totalFeedbackGive" : 3,
"falseFeedbackCount" : 1
}
{
"_id" : "2",
"totalFeedbackGive" : 1,
"falseFeedbackCount" : 1
}
Может кто-нибудь дать мне решение?