db.getCollection('sales').insertMany([
{ "_id" : 1, "item" : "1", "price" : 10, "quantity" : 2},
{ "_id" : 2, "item" : "2", "price" : 20, "quantity" : 1},
{ "_id" : 3, "item" : "3", "price" : 5, "quantity" : 10},
{ "_id" : 4, "item" : "4", "price" : 5, "quantity" : 20},
{ "_id" : 5, "item" : "5", "price" : 10, "quantity" : 10}
])
$match过滤
- 用于过滤数据,只输出符合条件的文档
查询不小于10元价格的商品
{ $match: {price: {$gt: 10} }}
$sort排序
- 升序 1
{ $sort: {price: 1} }
- 降序 -1
{ $sort: {price: -1} }
$limit限制
- 用来限制MongoDB聚合管道返回的文档数
{ $limit:2 }
$group分组
- 将集合中的文档分组,可用于统计结果
{ $group: {_id : "$price", total : {$sum : 1} } }
(结果)
$skip跳过
- 跳过指定数量的文档,并返回余下的文档
{ $skip:2 }
连写:
筛选字段—》过滤—》排序
db.sales.aggregate([
{$project: {price: 1, quantity: 1} },
{$match: {quantity: {$gte:10}} },
{$sort: {price: -1} }
])
其他
- $unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。
- $group:将集合中的文档分组,可用于统计结果。
- $sort:将输入文档排序后输出。
- $geoNear:输出接近某一地理位置的有序文档。