我试图在我的mongo db中运行聚合语句.我有一份文件,其 struct (至少)如下:
{
"_id": ObjectId,
"date": ISODate,
"keywordGroupId": NumberLong,
"ranking": NumberLong,
}
我想运行一个聚合语句,为给定的"关键字组ID"和给定的"日期"间隔聚合"排名"字段.
我一直在try 使用以下聚合命令:
{
aggregate : "KeywordHistory",
pipeline : [
{ $match: { keywordGroupId: 75 , "$date": {$gte: ISODate("2013-01-01T00:00:00.0Z"), $lt: ISODate("2013-02-01T00:00:00.0Z")}} },
{ $group: { _id: { null }, count: { $sum: "$ranking" } } }
]
}
此命令执行时不会出错并返回结果.如果我试图更改"keywordGroupId"字段的值,该命令将返回不同的值,因此我假设$match语句适用于该字段(NumberLong).不过,如果我更改了"日期"范围,并指定了一个数据库中没有任何数据的时间间隔,它仍然会返回一个结果(我实际上希望结果集为空).所以我必须假设$match语句忽略了指定的日期间隔.
有人能帮我解决这一点吗?