Я пытаюсь посчитать, сколько раз два отдельных поля верны. У меня есть два значения "clickedWouldRecommend" и "clickedWouldNotRecommend". Эти значения по умолчанию тоже ЛОЖЬ. При нажатии кнопки в интерфейсе они устанавливаются слишком ИСТИНА. Я пытаюсь увидеть, сколько clickedWouldRecommend = true и сколько clickedWouldNotRecommend = true для каждого имени филиала.
db.appointments.aggregate([
{
$match: {
$and: [
{
'branch.org_id': '100000'
},
{ "analytics.clickedWouldRecommend": true },
// Add OR statement to include analytics.clickedWouldNotRecommend = true?
]
}
},
{
$group: {
_id: '$branch.name',
wouldRecommend: { $sum: 1 }
}
}
])
Это дает результаты, аналогичные:
{
"_id": [ 'Clinic Name' ],
"wouldRecommend": 115.0
}
Мне нужно изменить запрос, чтобы также искать случаи, когда analytics.clickedWouldNotRecommend имеет значение true. Я пытаюсь получить вывод, похожий на этот (также обратите внимание на удаление массива из _id, если это возможно):
{
"name": 'Clinic Name'
"wouldRecommend": 115,
"wouldNotRecommend": 10
},
{
"name": 'Second Clinic Name'
"wouldRecommend": 200,
"wouldNotRecommend": 12
}
Вот усеченная модель / схема:
{
branch: [
{
name: {
type: String,
required: true
},
clinic_id: {
type: String,
required: true
},
org_id: {
type: String
}
}
],
analytics: {
clickedWouldRecommend: {
type: Boolean,
default: false
},
clickedWouldNotRecommend: {
type: Boolean,
default: false
}
},
date: {
type: Date,
default: Date.now
}
};