查询文件

使用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")

笔记:

尽管您可以使用$or运营商,使用$in运营商,而不是$or 对同一字段执行相等性检查时的运算符

指定逻辑运算符 ( AND/ OR)

复合查询可以为集合文档中的多个字段指定条件。隐含地,逻辑AND连接将复合查询的子句连接起来,以便查询选择集合中匹配所有条件的文档。

例子:

要返回在墨西哥发行IMDB 评分至少为 7 的电影:

use sample_mflix

db.movies.find( { countries: "Mexico", "imdb.rating": { $gte: 7 } } )

使用$or运算符指定一个复合查询,该查询将每个子句与逻辑OR合取符连接起来,以便查询选择集合中至少匹配一个条件的文档。

例子:

返回sample_mflix.movies2010 年发行 至少获得 5 个奖项或获得以下genre奖项的电影Drama

use sample_mflix

db.movies.find( {
     year: 2010,
     $or: [ { "awards.wins": { $gte: 5 } }, { genres: "Drama" } ]
} )

读取行为

要了解有关阅读文档的具体行为的更多信息,请参阅行为。

其他查询教程

有关其他查询示例,请参阅:

翻译:韩鹏帅

原文:Query Documents

Copyright © 上海锦木信息技术有限公司 all right reserved,powered by Gitbook文件修订时间: 2023-09-01 17:10:26

results matching ""

    No results matching ""