Arrays 是否有一个内置函数可以跨所有记录获取数组字段中的所有唯一值?

Arrays 是否有一个内置函数可以跨所有记录获取数组字段中的所有唯一值?,arrays,node.js,mongodb,mongoose,schema,Arrays,Node.js,Mongodb,Mongoose,Schema,我的模式如下所示: var ArticleSchema = new Schema({ ... category: [{ type: String, default: ['general'] }], ... }); 我想分析所有记录,并在所有记录中找到此字段的所有唯一值。这将通过服务调用发送到前端,以便对标签文章进行前瞻性搜索 我们可以遍历每个记录,运行遍历每个数组值并进行检查,但这将是O(n2) 是否存在性能更好的现有函数或其他方法?您可以使用该函数在所有文档的所有类别

我的模式如下所示:

var ArticleSchema = new Schema({
...
  category: [{
    type: String,
    default: ['general']
  }],
...
});
我想分析所有记录,并在所有记录中找到此字段的所有唯一值。这将通过服务调用发送到前端,以便对标签文章进行前瞻性搜索

我们可以遍历每个记录,运行遍历每个数组值并进行检查,但这将是O(n2)

是否存在性能更好的现有函数或其他方法?

您可以使用该函数在所有文档的所有
类别
数组字段中获取唯一值:

Article.distinct('category', function(err, categories) {
    // categories is an array of the unique category values
});
为获得最佳性能,在
类别
上添加索引