Docs 菜单

Docs 主页开发应用程序MongoDB 驱动程序Node.js 驱动程序

检索字段的不同值

您可以使用 collection.distinct() 在集合中检索某一字段的不同值列表。 方法。在distinct() 对象上调用Collection 方法,并将文档字段名称参数作为String 来生成列表,其中包含在指定文档字段中找到的每个不同值之一,如下所示:

const distinctValues = myColl.distinct("countries", query);

您可以使用 点表示法 在 嵌入式文档 中指定文档字段。如果对包含数组的文档字段调用distinct() ,该方法会将每个元素视为单独的值。请参阅以下示例,了解对wins awards子文档中 字段的方法调用:

const distinctValues = myColl.distinct("awards.wins", query);

options您可以使用作为第三个参数传递给distinct() 方法的 对象来指定更多查询选项。有关查询参数的详细信息,请参阅 API 文档中的 distinct() 方法。

如果您为此文档字段名称指定的值不是 String 类型,例如为 DocumentArrayNumbernull,则该方法不会执行且会返回 TypeMismatch 错误并显示类似以下内容的消息:

“key”的类型错误。预期为字符串,但找到<non-string type>

有关 distinct() 方法的更多信息,请访问检索不同值

以下代码段从 movies 集合中检索 year 文档字段的非重复值列表。它使用查询文档来匹配包含“Barbara Streisand”作为 director 的电影。

注意

可以使用此示例连接到 MongoDB 实例,并与包含样本数据的数据库进行交互。如需了解有关连接到 MongoDB 实例和加载样本数据集的更多信息,请参阅使用示例指南

运行前面的示例,您会看到以下输出:

[ 1983, 1991, 1996 ]
← 计算文档