关闭

mongo Aggregation group

标签: mongoAggregationgroup
771人阅读 评论(0) 收藏 举报
分类:

按年/月进行统计:

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}}
]);


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:532853次
    • 积分:5358
    • 等级:
    • 排名:第5055名
    • 原创:130篇
    • 转载:36篇
    • 译文:0篇
    • 评论:46条
    文章分类
    最新评论