查询文件
使用db.collection.find()
MongoDB Shell中的方法 来查询集合中的文档。
此页面上的示例参考了Atlas 样本数据集. 您可以创建一个免费的Atlas 集群并使用示例数据填充该集群以跟随这些示例。要了解更多信息,请参阅 开始使用Atlas。
读取集合中的所有文档
要读取集合中的所有文档,请将空文档作为查询过滤器参数传递给 find 方法。查询过滤器参数确定选择标准。
例子:
要返回
sample_mflix.movies
集合中的所有文档:use sample_mflix db.movies.find()
这个操作相当于下面的 SQL 语句:
SELECT * FROM movies
指定相等条件
要选择匹配相等条件的文档,请<field>:<value>
在 查询过滤文档。
例子:
要返回集合中
title
相等的所有电影:Titanic``sample_mflix.movies
use sample_mflix db.movies.find( { "title": "Titanic" } )
该操作对应如下SQL语句:
SELECT * FROM movies WHERE title = "Titanic"
使用查询运算符指定条件
使用查询运算符在一个 查询过滤文档 进行更复杂的比较和评估。查询过滤器文档中的查询运算符具有以下形式:
{ <field1>: { <operator1>: <value1> }, ... }
例子:
sample_mflix.movies
要返回集合中评级为PG
或的所有电影PG-13
:use sample_mflix db.movies.find( { rated: { $in: [ "PG", "PG-13" ] } } )
该操作对应如下SQL语句:
SELECT * FROM movies WHERE rated in ("PG", "PG-13")
笔记:
指定逻辑运算符 ( AND
/ OR
)
复合查询可以为集合文档中的多个字段指定条件。隐含地,逻辑AND
连接将复合查询的子句连接起来,以便查询选择集合中匹配所有条件的文档。
例子:
要返回在墨西哥发行且IMDB 评分至少为 7 的电影:
use sample_mflix db.movies.find( { countries: "Mexico", "imdb.rating": { $gte: 7 } } )
使用$or
运算符指定一个复合查询,该查询将每个子句与逻辑OR
合取符连接起来,以便查询选择集合中至少匹配一个条件的文档。
例子:
返回
sample_mflix.movies
2010 年发行且 至少获得 5 个奖项或获得以下genre
奖项的电影Drama
:use sample_mflix db.movies.find( { year: 2010, $or: [ { "awards.wins": { $gte: 5 } }, { genres: "Drama" } ] } )
读取行为
要了解有关阅读文档的具体行为的更多信息,请参阅行为。
其他查询教程
有关其他查询示例,请参阅:
翻译:韩鹏帅