Я пытаюсь суммировать массив документов с условием.
{
$project: {
watched: 1,
numberOfWatched: {
$sum: {
// $cond: {
// if: {
// $eq: ['$watched.status', true],
// then: 1,
// else: 0
// }
// }
$cond: [
{ $eq: ['$watched.status', true]},
1,
0
]
}
},
durationWatched: {$sum: "$watched.duration"}
}
}
Это вывод, который я получаю.Здесь вы можете видеть, что мой наблюдаемый массив имеет значение со статусом true в нем.Таким образом, numberOfWatched должно быть равно 1. Вместо этого возвращается 0.
[
{
"_id":"5bacb579921406542350d254",
"watched":[
{
"_id":"5baf44ee2369280542a4c41e",
"duration":24.083333333333332,
"user_id":"5bacbb05d2b8e4577b038f43",
"video_id":"5bacb5b1921406542350d25e",
"module_id":"5bacb588921406542350d256",
"course_id":"5bacb579921406542350d254",
"createdAt":"2018-09-29T09:25:02.107Z",
"updatedAt":"2018-09-29T09:25:02.107Z",
"__v":0,
"status":true
}
],
"numberOfWatched":0,
"durationWatched":24.083333333333332
}
]