MongoDB中如何使用管道操作符?

在MongoDB中使用聚合管道操作符主要有以下几种方式:

  1. $match – 用于过滤数据,只输出符合条件的文档。
  • 等价于find()查询操作。
{ $match: { status: "A" } }
  1. $group – 将集合中的文档分组,可用于统计结果。
  • 形如:{ $group: { _id: , : { : }, … } }
{ 
  $group: {
    _id: "$gender", 
    total: { $sum: 1 } 
  } 
}
  1. $sort – 将文档排序后输出。
  • 等价于sort()命令。
{ $sort: { age: -1 } }
  1. $skip – 跳过指定数量的文档,并返回余下的文档。
  • 等价于skip()命令。
{ $skip: 5 } 
  1. $limit – 输出指定数量的文档。
  • 等价于limit()命令。
{ $limit: 10 }
  1. $lookup – 对文档执行左外连接,查询然后将结果合并。
  • 可用于在aggregation pipeline内实现join
{
  $lookup: {
    from: "inventory",
    localField: "item",  
    foreignField: "sku",
    as: "inventory_docs"
  }
}
  1. $unwind – 将文档中的数组类型字段拆分成多条文档。
  • 每条文档都包含数组中的一个值。
{ $unwind: "$tags" }
  1. 等等其他类型 – $project, $addFields, $replaceRoot, $avg, $max, $min, $sum, $size, etc.