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

时间:2015-06-15 20:43:44

标签: arrays node.js mongodb mongoose schema

我的架构如下所示:

var ArticleSchema = new Schema({
...
  category: [{
    type: String,
    default: ['general']
  }],
...
});

我想解析所有记录,并在所有记录中查找此字段的所有唯一值。这将通过服务调用发送到前端,以便在标记文章上进行前瞻搜索。

我们可以迭代每一条记录并运行遍历每个数组值并进行检查,但这将是O(n 2 )。

是否存在现有功能或其他具有更佳性能的方式?

1 个答案:

答案 0 :(得分:0)

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

Article.distinct('category', function(err, categories) {
    // categories is an array of the unique category values
});

category上添加索引以获得最佳效果。