我正在尝试根据条件对文档数组进行求和。
{
$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
}
]