MongoDB Aggregate 聚合管道使用

aggregate中使用

$match

$group

$project

$sort

db.collection.aggregate([
    //过滤条件 = where processStatus = 0 
    {
        $match: {
            processStatus: 0
        }
    },
    //分组 = group by formatterDate(createOn, '%Y-%m-%d')
    {
        $group: {
            //分组条件 根据日期(年-月-日)
            _id: {
                $dateToString: {
                    format: '%Y-%m-%d',
                    date: '$createOn'
                }
            },
            // 相当于count(*) 统计该分组有多少条
            totalCount: {
                $sum: 1
            },
						// 相当于count(*) 统计该分组有多少条
            totalCount: {
                $sum: 1
            }
        }
    },
    //分组筛选 = having 
    {
        //总记录数小于100
        $match: {
            totalCount: {
                $lte: 200
            }
        }
    },
		//返回分组后指定的列
    {
        $project: {
            '日期': '$_id',
            '总记录条数': '$totalCount'
        }
    },
    //根据日期降序 = order by _id
    {
        $sort: {
            _id: - 1
        }
    }
]);



版权声明:本文为qq_32419835原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。