2.4 MongooDB聚合管道

可以对集合中的文档数据进行变换和组合

// 通过
db.orders.aggregate([
    {$match:{username:"zhangsan"}},
    {$group:{age:30total{$sum:'$amount'}}}
])

上面的代码是先查到 username 是张三的人,然后对所有的张三进行分组 30岁的一组 不是三十的一组,这个操作会返回连个组合

常见的操作符

$project 添加 删除 命名  需要显示的列
$lookup 引入其他集合数据  关联查询
$match 条件匹配 满足条件筛选进入下一组管道 相当于mysql的have
$group 条件组合结果  统计 相当于 groupby
$sort  条件排序
$skip 跳过
$limit 限制数量
$unwide 拆分数组

$project 管道操作符

db.users.aggregate([{$project:{username:1}}])
// 表示 查找users 表 只显示 username  于find 第二个参数select 使用方式类似

$match 匹配

$group 分组

group分组后可以进行统计

$sort 排序

$limit 限制条数

$skip 跳过几条

$lookup 用于表的关联操作

Last updated