MongoDB aggregate 用法
时间: 2023-12-05 07:03:43 浏览: 31
MongoDB aggregate 是用于处理数据的一种方法。它可以帮助您对数据进行聚合、分析和计算。以下是 MongoDB aggregate 的用法:
1. 基本语法:
```javascript
db.collection.aggregate( [stage1, stage2, ...] )
```
2. 常用聚合操作:
2.1. $match:根据指定条件过滤文档。
```javascript
db.collection.aggregate([
{ $match: { age: { $gte: 18 } } }
])
```
2.2. $group:将文档分组并计算聚合值。
```javascript
db.collection.aggregate([
{ $group: { _id: "$gender", count: { $sum: 1 } } }
])
```
2.3. $sort:对文档进行排序。
```javascript
db.collection.aggregate([
{ $sort: { age: -1 } }
])
```
2.4. $project:选择需要输出的文档属性。
```javascript
db.collection.aggregate([
{ $project: { _id: 0, name: 1, age: 1 } }
])
```
2.5. $limit:限制输出文档数量。
```javascript
db.collection.aggregate([
{ $limit: 10 }
])
```
2.6. $skip:跳过指定数量的文档。
```javascript
db.collection.aggregate([
{ $skip: 10 },
{ $limit: 10 }
])
```
2.7. $unwind:将数组拆分为单个文档。
```javascript
db.collection.aggregate([
{ $unwind: "$hobbies" }
])
```
3. 多个聚合操作的组合:
```javascript
db.collection.aggregate([
{ $match: { age: { $gte: 18 } } },
{ $group: { _id: "$gender", count: { $sum: 1 } } },
{ $sort: { count: -1 } },
{ $limit: 10 }
])
```
以上就是 MongoDB aggregate 的基本用法。聚合操作的组合可以根据实际需求进行灵活组合,以完成复杂的数据处理任务。