📅  最后修改于: 2023-12-03 15:06:24.854000             🧑  作者: Mango
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 官方文档。