MongoDB比较和聚合

在 MongoDB 中,可以使用一系列比较运算符来执行查询操作,这些比较运算符可以用于比较文档中字段的值。以下是 MongoDB 中常用的比较运算符:

  1. 相等:$eq:等于$ne:不等于db.collection.find({ "age": { "$eq": 30 } }); // 查找年龄等于30的文档db.collection.find({ "status": { "$ne": "active" } }); // 查找状态不等于"active"的文档
  2. 比较大小:$gt:大于$gte:大于等于$lt:小于$lte:小于等于db.collection.find({ "age": { "$gt": 25, "$lt": 35 } }); // 查找年龄在25和35之间的文档
  3. 范围查询:$in:匹配数组中任意值$nin:不匹配数组中任何值db.collection.find({ "status": { "$in": ["active", "pending"] } }); // 查找状态为"active"或"pending"的文档
  4. 存在性检查:$exists:检查字段是否存在db.collection.find({ "name": { "$exists": true } }); // 查找具有名字字段的文档
  5. 正则表达式:$regex:使用正则表达式匹配字段值db.collection.find({ "name": { "$regex": "^J" } }); // 查找名字以字母J开头的文档
  6. 逻辑运算符:$and:逻辑与$or:逻辑或$not:逻辑非$nor:与逻辑或相反db.collection.find({ "$or": [{ "age": { "$lt": 18 } }, { "age": { "$gt": 65 } }] }); // 查找年龄小于18或大于65的文档

这些比较运算符可以帮助您根据特定条件过滤和查询 MongoDB 中的文档数据。


MongoDB 的聚合框架提供了强大的功能,允许您对文档进行各种操作,如分组、筛选、计数、计算总和、平均值等。以下是 MongoDB 中常用的聚合函数和操作:

  1. $match: 用于筛选文档,类似于查询操作中的条件筛选。db.collection.aggregate([ { $match: { status: "A" } } // 筛选状态为"A"的文档]);
  2. $group: 用于对文档进行分组操作,通常与聚合函数一起使用。db.collection.aggregate([ { $group: { _id: "$status", total: { $sum: 1 } } } // 按状态分组,并计算每个状态的文档总数]);
  3. $sort: 用于对文档进行排序操作。db.collection.aggregate([ { $sort: { age: 1 } } // 按年龄升序排序]);
  4. $project: 用于重新定义输出文档中的字段,也可用于添加新字段。db.collection.aggregate([ { $project: { name: 1, age: 1 } } // 只包含名字和年龄字段]);
  5. $limit: 用于限制结果集中返回的文档数量。db.collection.aggregate([ { $limit: 10 } // 返回前10个文档]);
  6. $skip: 用于跳过结果集中的指定数量的文档。db.collection.aggregate([ { $skip: 10 } // 跳过前10个文档]);
  7. $unwind: 用于展开数组字段,将数组字段中的每个元素作为单独的文档输出。db.collection.aggregate([ { $unwind: "$tags" } // 将数组字段tags展开为单独的文档]);
  8. $lookup: 用于从另一个集合中进行关联查询操作。db.collection.aggregate([ { $lookup: { from: "anotherCollection", localField: "field", foreignField: "anotherField", as: "output" } }]);

这些是 MongoDB 中常用的聚合函数和操作,可以帮助您对文档数据进行更复杂的处理和分析。

文章标签:

评论(0)