MongoDB聚合基本操作

本文介绍了MongoDB中聚合操作的基本概念及其使用方法,详细列举了常用管道操作符的功能与示例,包括$match、$project、$group、$sort、$limit及$skip等,并解释了如何利用这些操作符对数据进行高效处理。

聚合是指对取出的数据进行一系列的处理和分析,具体操作用到aggregate方法和管道操作符。

下面列出常用的几种管道操作符:

1. $match

用于筛选记录:

> db.collection.aggregate({'$match': {'key': 'value'}})

2. $project

用于选择出想要的字段:

> db.collection.aggregate({'$project': {'author': 1, '_id': 0}})

也可以进行重命名后显示,注意要将改名前的字段去掉:

> db.collection.aggregate({'$project': {'userid': '$_id', '_id': 0}})

$project也可以接受表达式,如下面的project返回两个值之和,记录为total字段:

> db.collection.aggregate({'$project': {'total': {'$add': ['v1', 'v2']}}})

类似的数学计算操作符还有$subtract, $multiply, $divide, $mod等。

下面的project会将记录中的月份提取出来:

> db.collection.aggregate({'$project': {'hiremonth': {'$month': '$hiredate'}}})

也可以对时间做减法求出时长:

> db.collection.aggregate({'$project': {'duration': {'$subtract': [{'$year': new Date()}, {'$year': '$hiretime'}]}}})

字符串操作符包括:

$substr(用于截取字符串)、$concat(用于拼接字符串)、$toLower、$toUpper

另外,还有两个控制操作符:

$cond用于条件判断,格式是:'$cond' : [booleanexpr, trueexpr, falseexpr],当booleanexpr判断为真时,执行第一个表达式,否则执行第二个表达式。

$ifNull用于执行替补命令,格式是:'$ifNull': [expr, replaceexpr],当expr不为空时执行expr,否则执行后面一个表达式。

3. $group

$group对记录按照指定字段进行分组。比如下面的例子,分组后同时返回最高和最低的分数:

> db.collection.aggregate({'$group': {'_id': '$grade', 'lowest': {'$min': '$score'}, 'highest': {'$max': '$score'}}})

4. $sort、$limit、$skip

用于排序、限制返回数量和跳过记录数量。

 

转载于:https://www.cnblogs.com/00986014w/p/8418598.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值