Я пишу запрос в MongoDB.Я хотел бы подсчитать каждую оценку по каждому отзыву, и если оценка превышает 6, увеличивается Grades_Count и GradesMoreThan6_Count, а если нет, то увеличивается только Grades_Count.Я не могу найти функцию $ inc, которую я мог бы использовать в проекции.Я ценю всю помощь.
{$project: {
_id: 1,
reviews: 1,
Grades_Count: NumberInt(0),
GradesMoreThan6_Count: {$map:
{input: "$reviews", as: "review", in:
{$switch:
{branches:[
{case: { $gt: [ "$$review.responsive", 6 ] }},then: Grades_Count++ AND GradesMoreThan6_Count++},
{case: { $gt: [ "$$review.helpful", 6 ] }},then: Grades_Count++ AND GradesMoreThan6_Count++},
{case: { $gt: [ "$$review.kind", 6 ] }},then: Grades_Count++ AND GradesMoreThan6_Count++}
],
default: Grades_Count++}}},
Массив отзывов
"reviews" : [
{
"reviewer" : "Rachel Lynch",
"date" : "2018-08-20T09:51:41 -02:00",
"cleanliness" : NumberInt(7),
"location" : NumberInt(3),
"food" : NumberInt(8)
},
{
"reviewer" : "Cynthia Wade",
"date" : "2018-07-06T08:48:09 -02:00",
"cleanliness" : NumberInt(8),
"location" : NumberInt(4),
"food" : NumberInt(1)
},
{
"reviewer" : "Lowery Bright",
"date" : "2016-07-06T01:24:40 -02:00",
"cleanliness" : NumberInt(1),
"location" : NumberInt(1),
"food" : NumberInt(1)
},
{
"reviewer" : "Amy Frederick",
"date" : "2018-07-03T08:31:27 -02:00",
"cleanliness" : NumberInt(7),
"location" : NumberInt(4),
"food" : NumberInt(6)
},
{
"reviewer" : "Baird Kim",
"date" : "2016-10-22T04:34:46 -02:00",
"cleanliness" : NumberInt(9),
"location" : NumberInt(3),
"food" : NumberInt(6)
}
]