MongoDB collection.distinct() 方法
distinct() 方法是 Mongodb 中用来获取指定集合中某个字段不同值的方法。它可以查询出一个集合中某个字段的所有不同值,将它们作为数组返回。distinct() 方法对于对于对某些字段进行统计,分组查询非常有用。
语法
distinct() 方法的语法如下:
db.collection.distinct(field, query, options)
其中,
field:表示需要查询的字段;query:表示查询条件,可以为空;options:表示一些可选参数,例如collation、hint等。
使用场景
distinct() 方法适用于以下场景:
- 获取一个集合中某个字段的所有不同值;
- 对某个字段进行统计,分组查询等。
示例
假设我们有一个名为 students 的集合,其中包含了多个学生文档。每个文档包含 _id、name、age、gender 和 score 等字段。现在,我们需要查询出 students 集合中所有不同的年龄值。
db.students.distinct("age")
执行以上代码,返回的结果如下:
[20, 21, 22, 23, 24, 25]另外一个示例,假设我们有一个名为 orders 的集合,其中包含了多个订单文档。每个文档包含 _id、customer_id、status 和 items 等字段。现在,我们需要查询出 orders 集合中所有不同的 status 值,并按照顺序进行排序。
db.orders.distinct(
"status",
{},
{ collation: { locale: "en", strength: 2 }, sort: 1 }
)
执行以上代码,返回的结果如下:
["canceled", "completed", "in progress", "pending"]结论
distinct() 方法是 Mongodb 中非常有用的查询方法,它可以查询出一个集合中某个字段的所有不同值,并将它们作为数组返回。distinct() 方法对于对某些字段进行统计,分组查询非常有用。在使用时需要注意,distinct() 方法返回的数组中只包含指定字段的值,而不包括文档本身。此外,distinct() 方法在处理大量数据时可能会影响查询性能,因此需要注意使用时的数据量。