我尝试按月汇总和分组mongodb中的对象。我基本上从mongo docs复制查询。
db.users.aggregate(
{
$group : {
_id: {
month : { $month : "$registrationDate" }
},
count: { $sum: 1 }
}
}
);
注册日期类型是日期。 用户集合中对象的简短版本。
{
"_id" : ObjectId("50ab08399b57f2be03000000"),
...
"registrationDate" : ISODate("2012-11-20T05:34:01.000Z"),
...
}
然后我得到一个例外
exception: can't convert from BSON type NumberDouble to Date
答案 0 :(得分:1)
问题是您的集合中有一些文档,registrationDate
的类型不是日期而是双精度浮点数。您可以使用db.users.find( { registrationDate: { $type:1 } } )
找到这些文档。修复这些文件,它应该工作。或者,您可以将以下步骤添加到聚合的前面,以排除那些registrationDate不是日期的文档:{$match: { registrationDate: { $type:9 } } }