我正在尝试根据日期范围聚合字段。我无法弄清楚如何创建一个将评估多个表达式的$ cond表达式。我试图使用逻辑$或运算符,但没有运气。
db.project.aggregate(
{ $match : { brand : 4 } },
{ $project : {
_id : 0,
brand : 1,
count : 1,
day : 1}
},
{ $group : {
_id : "$brand",
TotalCount : { $sum : "$count" },
TimeRangeCount : {$sum: { $cond: [ { $gte: [ "$day", new Date(2014, 0, 6) ], {$or: [$lte: [ "$day", new Date(2014, 0, 8) ]]} }, "$count", 0 ] }}
}}
)
是否可以嵌套$或$ cond?
谢谢!
答案 0 :(得分:1)
我相信我用$和
得到它db.project.aggregate(
{ $match : { brand : 4 } },
{
$project : {
_id : 0,
brand : 1,
count : 1,
day : 1
}
},
{
$group : {
_id : "$brand",
TotalCount : { $sum : "$count" },
TimeRangeCount : {
$sum: {
$cond: [
{$and: [
{$gte: ["dDay", new Date(2014, 0, 6)]},
{$lte: ["$day", new Date(2014, 0, 8)]}
]},
"$count",
0
]
}
}
}
}
)