📜  什么是 MongoDB 查询?(1)

📅  最后修改于: 2023-12-03 15:06:24.854000             🧑  作者: Mango

什么是 MongoDB 查询?

MongoDB 是一个流行的 NoSQL 数据库,在管理非结构化数据方面非常有用。查询是 MongoDB 中的一个重要特性,允许开发者根据特定条件从集合中检索数据。

查询操作

查询在 MongoDB 中使用 .find() 进行。以下是基本语法:

db.collection.find(query, projection)

其中:

  • db:数据库对象
  • collection:指向要查询的文档集合
  • query:查询条件,一个 JavaScript 对象
  • projection:可选,决定要返回的字段,类似于 SQL 中的 SELECT 查询

例如,想要从名为 users 的集合中查询用户名为 "Alice" 的用户,可以使用以下代码:

db.users.find({ name: "Alice" })

除了基本条件外,MongoDB 支持许多其他查询操作,包括比较操作符,逻辑操作符和正则表达式操作符等。以下是一些示例:

// 检索年龄大于 18 的用户
db.users.find({ age: { $gt: 18 } })

// 检索名字以 M 开头的用户
db.users.find({ name: /^M/ })

// 检索对应 ID 列表的多个用户
db.users.find({ _id: { $in: [1, 3, 5] } })
聚合操作

除了基本查询外,MongoDB 还支持聚合操作,允许开发者使用一组操作组合多个查询流水线。以下是一个使用聚合操作的示例,该示例将文档按年龄分组,并计算每组文档的平均值:

db.users.aggregate([
  { $group: {
    _id: "$age",
    avgScore: { $avg: "$score" }
  } }
])
管道

聚合操作使用管道 (pipeline) 来指定一连串操作,管道中的每个操作的输出都是下一个操作的输入。一个基本的管道操作结构如下:

{ $operator: { field: value } }

其中 $operator 是 MongoDB 支持的任何操作符,field 是操作中使用的字段名称,而 value 是操作中使用的值。

以下是一些示例操作:

{ $match: { name: "Alice" } }
{ $unwind: "$tags" }
{ $group: { _id: "$age", count: { $sum: 1 } } }
{ $sort: { age: -1 } }
{ $limit: 10 }

这些操作可以根据需要进行组合和排序,以生成所需数据的最终结果。

总结

MongoDB 查询是基于条件和操作的数据检索方法。它允许开发人员使用各种条件运算符和聚合操作,以提取数据库中的信息。要学习 MongoDB,请查看 MongoDB 官方文档。