【问题标题】:Is there a built-in function to get all unique values in an array field, across all records?是否有内置函数可以跨所有记录获取数组字段中的所有唯一值?
【发布时间】:2015-08-31 12:11:17
【问题描述】:

我的架构如下所示:

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

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

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

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

【问题讨论】:

    标签: arrays node.js mongodb mongoose schema


    【解决方案1】:

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

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

    category 上建立索引以获得最佳性能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-18
      • 1970-01-01
      • 2016-06-07
      • 2011-07-19
      • 2022-12-16
      • 2011-08-27
      相关资源
      最近更新 更多