Mongodb 某些文档组的组数

Mongodb 某些文档组的组数,mongodb,Mongodb,此mongodb中的文档具有属性createdAt=Date.now(),即纪元时间,以及属性userid和name 所需的是name='abc'的文档数,这些文档是在少于或等于4个月前创建的,但这些文档是由同一用户ID在同一天创建的,作为一个计数。 最好的办法是什么?聚合、映射、组合或 您可以尝试下面的聚合 var date = new Date(Date.UTC(2017, 2, 3, 0, 0, 0)); date.setMonth(date.getMonth() - 4); db.c

此mongodb中的文档具有属性
createdAt=Date.now()
,即纪元时间,以及属性
userid
name

所需的是
name='abc'
的文档数,这些文档是在少于或等于4个月前创建的,但这些文档是由同一用户ID在同一天创建的,作为一个计数。

最好的办法是什么?聚合、映射、组合或

您可以尝试下面的聚合

var date = new Date(Date.UTC(2017, 2, 3, 0, 0, 0)); 
date.setMonth(date.getMonth() - 4);

db.collection.aggregate([{
    $match: {
        createdAt: {
            $gte: date,
            $lte: new Date(Date.UTC(2017, 2, 3, 0, 0, 0))
        },
        name: "abc"
    }
}, {
    $group: {
        _id: {
            date: {
                $dayOfMonth: "$createdAt"
            },
            month: {
                $month: "$createdAt"
            },
            year: {
                $year: "$createdAt"
            },
            userid: "$userid"
        },
        count: {
            $sum: 1
        }
    }
}]);

我正在获取服务器控制台上未定义的ISODate。我在澳大利亚,不确定这是否有什么不同。更新为使用JavaScript日期对象。看看是否有帮助