与mongodb聚合的Cant组

时间:2015-06-09 08:31:14

标签: mongodb

我尝试按月汇总和分组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

1 个答案:

答案 0 :(得分:1)

问题是您的集合中有一些文档,registrationDate的类型不是日期而是双精度浮点数。您可以使用db.users.find( { registrationDate: { $type:1 } } )找到这些文档。修复这些文件,它应该工作。或者,您可以将以下步骤添加到聚合的前面,以排除那些registrationDate不是日期的文档:{$match: { registrationDate: { $type:9 } } }