MongoDB聚合查询
MongoDB支持多种聚合查询操作,以下是一些常用的聚合查询操作:
1. $match:根据指定的条件筛选文档。
示例:
db.collection.aggregate([
{ $match: { age: { $gte: 18 } } }
])
该例子会从集合中选择所有age字段大于等于18的文档。
2. $group:按照指定的字段进行分组,并进行聚合操作。
示例:
db.collection.aggregate([
{ $group: { _id: "$category", count: { $sum: 1 } } }
])
该例子会根据category字段进行分组,并计算每个分类下的文档数量。
3. $sort:将文档按照指定的字段进行排序。
示例:
db.collection.aggregate([
{ $sort: { age: -1 } }
])
该例子会按照age字段进行降序排序。
4. $project:对文档进行投影操作,只返回指定的字段。
示例:
db.collection.aggregate([
{ $project: { name: 1, age: 1 } }
])
该例子只返回name和age字段。
5. $limit:限制返回的文档数量。
示例:
db.collection.aggregate([
{ $limit: 10 }
])
该例子只返回前10个文档。
6. $skip:跳过指定数量的文档。
示例:
db.collection.aggregate([
{ $skip: 5 }
])
该例子跳过前5个文档。
7. $unwind:将包含数组的文档拆分成多个文档。
示例:
db.collection.aggregate([
{ $unwind: "$tags" }
])
该例子将包含tags数组的文档拆分为多个文档,每个文档只包含一个tag。
以上只是部分常用的聚合查询操作示例,MongoDB还支持其他更复杂的聚合查询操作,如$lookup、$project、$group等,可以根据实际需求进行选择和组合使用。