查找多个文档
您可以使用 collection.find()
查询集合中的多个文档。find()
方法使用您提供的查询文档来匹配集合中与查询匹配的文档子集。如果未提供查询文档(或提供空文档),MongoDB 将返回集合中的所有文档。有关查询 MongoDB 的更多信息,请参阅查询文档资料。
还可以定义其他查询选项,如 sort 和 projection,以配置结果集。可以在 sort
和 projection
对象中的 find()
方法调用的选项参数中指定这些内容。请参阅 collection.find(),进一步了解可以传递给该方法的参数。
find()
方法返回 findCursor ,管理您的查询结果。您可以使用 for await...of
语法或以下游标方法之一遍历匹配的文档:
next()
toArray()
如果没有与此查询匹配的文档,find()
则会返回一个空游标。
兼容性
您可以使用 Node.js 驱动程序连接到以下环境中托管的部署并对其使用 find()
方法:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
MongoDB Enterprise:基于订阅、自行管理的 MongoDB 版本
MongoDB Community:source-available、免费使用且可自行管理的 MongoDB 版本
要详细了解如何在 Atlas 用户界面中为 MongoDB Atlas 托管的部署查找文件,请参阅创建、查看、更新和删除文档。
例子
以下代码段查找 movies
集合中的文档。它使用以下参数:
一份查询文档,将该查询配置为仅返回运行时少于 15 分钟的电影。
一种按标题升序组织返回文档的排序(按字母顺序,"A" 在 "Z" 之前,"1" 在 "9" 之前)。
一个投影,它会从返回的文档中显式排除
_id
字段并显式仅包含title
和imdb
对象(及其嵌入式字段)。
注意
可以使用此示例连接到 MongoDB 实例,并与包含样本数据的数据库进行交互。如需了解有关连接到 MongoDB 实例和加载样本数据集的更多信息,请参阅使用示例指南。
运行前一示例应能看到以下输出:
{ title: '10 Minutes', imdb: { rating: 7.9, votes: 743, id: 339976 } } { title: '3x3', imdb: { rating: 6.9, votes: 206, id: 1654725 } } { title: '7:35 in the Morning', imdb: { rating: 7.3, votes: 1555, id: 406501 } } { title: '8', imdb: { rating: 7.8, votes: 883, id: 1592502 } } ...
sort
和 projection
选项也可以指定为链式调用至 find()
方法的方法(分别为 sort()
和 project()
)。以下两个命令是等效的:
movies.find({ runtime: { $lt: 15 } }, { sort: { title: 1 }, projection: { _id: 0, title: 1, imdb: 1 }}); movies.find({ runtime: { $lt: 15 } }).sort({ title: 1}).project({ _id: 0, title: 1, imdb: 1 });