У меня следующая упрощенная коллекция
[
{
"key": 1,
"array": [
{ "check": true },
{ "check": false },
{ "check": true }
]
},
{
"key": 2
}
]
Я хочу добавить поле «count» с количеством элементов массива с «check» = true, поэтому я ожидаю следующий результат
{
"key": 1,
"array": [
{ "check": true },
{ "check": false },
{ "check": true }
],
"count":2,
},
{
"key": 2,
"count": 0
}
]
У меня следующий запрос (это агрегация, потому что на самом деле это один из этапов конвейера)
db.collection.aggregate([
{
"$addFields": {
"count": {
"$sum": {
"$cond": {
"if": {
"$eq": ["$array.check",true],
},
"then": 1,
"else": 0,
}
}
},
}
}
])
Но я всегда получаю count = 0.
Можете ли вы помочь мне найти ошибку в моем запросе?
Здесь пн go площадка