mongo Aggregation group

按年/月进行统计:

db.node.aggregate([
	{$group:{
		_id: {
		    year : { $year : "$publishedDate" },        
                    month : { $month : "$publishedDate" }
		},
		count: {$sum: 1}}
	},
	{$sort: {"_id": 1}}
]);

得到如下结果:

{
        "result" : [
                {
                        "_id" : {
                                "year" : 2013,
                                "month" : 3
                        },
                        "count" : 1
                },
                {
                        "_id" : {
                                "year" : 2013,
                                "month" : 4
                        },
                        "count" : 14
                }
        ],
        "ok" : 1
}

如果只按年统计,则把条件中的月去掉即可,
db.node.aggregate([
	{$group:{
		_id: {
		    year : { $year : "$publishedDate" }
		},
		count: {$sum: 1}}
	},
	{$sort: {"_id": 1}}
]);

对符合特定条件的结果,进行分组:

db.user.aggregate([
	{ $match : { "createDate" : { $gte : new ISODate("2015-01-01T20:15:31Z") } } },
	{$group:{
		_id: {
			year : { $year : "$createDate" },        
           <span style="white-space:pre">		</span>month : { $month : "$createDate" }
		},
		count: {$sum: 1}}
	},
	{$sort: {"_id": 1}}
]);

即可对2015-01-01之后的用户进行分组统计,结果:
{
        "result" : [
                {
                        "_id" : {
                                "year" : 2015,
                                "month" : 1
                        },
                        "count" : 1
                },
                {
                        "_id" : {
                                "year" : 2015,
                                "month" : 2
                        },
                        "count" : 6
                }
        ],
        "ok" : 1
}


还有,
db.log.aggregate([
	{ $match : { action : "login" } },
	{$group:{
		_id: {
			year : { $year : "$datetime" },        
            <span style="white-space:pre">		</span>month : { $month : "$datetime" }
		},
		count: {$sum: 1}}
	},
	{$sort: {"_id": 1}}
]);


阅读更多
文章标签: mongo Aggregation group
个人分类: mongo
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

mongo Aggregation group

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭