Docs 菜单

Docs 主页开发应用程序MongoDB Manual

查询数组

在此页面上

  • 匹配数组
  • 查询数组元素
  • 为数组元素指定多个条件
  • 使用 MongoDB Atlas 查询数组
  • 其他查询教程

您可以使用以下方法在 MongoDB 中查询数组:

  • 您的编程语言的驱动程序。

  • MongoDB Atlas 用户界面。要了解更多信息,请参阅使用 MongoDB Atlas 查询数组

  • MongoDB Compass。


➤ 使用右上角的 Select your language(选择语言)下拉菜单,设置以下示例的语言或选择 MongoDB Compass。


以下示例查询字段 tags 值是一个数组且恰好有两个元素 "red""blank"(按指定顺序)的所有文档:

相反,如果想查找同时包含 "red""blank" 元素的数组,而不考虑顺序或数组中的其他元素,则请使用 $all 运算符:

以下示例将查询所有文档,其中 tags 为包含字符串 "red" 以作为其元素之一的数组:

例如,以下操作将查询所有文档,其中数组 dim_cm 至少包含一个其值大于 25 的元素。

在用复合条件查询数组中的元素时,您可以设置查询语句,使单个数组元素满足查询条件或是任意数组元素的组合满足查询条件。

以下示例将查询特定文档,其中 dim_cm 数组包含以某种组合形式可满足查询条件的元素;例如,一个元素可满足大于 15 的条件,而另一元素可满足小于 20 的条件,或是单个元素可同时满足这两个条件:

使用 $elemMatch 运算符为数组的元素指定多个条件,以使至少一个数组元素满足所有指定的条件。

以下示例将查询特定文档,其中 dim_cm 数组至少包含一个大于 ($gt) 22 且小于 ($lt) 30 的元素:

使用点符号,可以在数组的特定索引或位置为元素指定查询条件。该数组使用从零开始的索引。

注意

使用点表示法查询时,字段和嵌套字段必须放在引号内。

以下示例将查询所有文档,其中数组 dim_cm 中的第二个元素大于 25

使用 $size 操作符以便按元素个数来查询数组。例如,以下示例会选择数组 tags 有 3 个元素的文档。

本部分中的示例使用样本电影数据集。要了解如何将样本数据集加载到 MongoDB Atlas 部署中,请参阅加载样本数据。

要在 MongoDB Atlas 中查询数组,请按照以下步骤操作:

1
  1. 在 MongoDB Atlas 用户界面中,单击侧边栏中的 Database

  2. 对于包含样本数据的数据库部署,单击 Browse Collections

  3. 在左侧导航窗格中,选择 sample_mflix 数据库。

  4. 选择 movies 集合。

2

要查询包含数组的文档,请指定查询筛选器文档。 查询筛选器文档使用查询操作符来指定搜索条件。 使用以下示例文档来查询sample_mflix.movies 集合中的大量字段。

要应用查询过滤器,请将示例文档复制到 Filter(过滤器)搜索栏,然后单击 Apply(应用)。

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

← 对嵌入/嵌套文档的查询