【问题标题】:Counting how many elements of an Array appears in a document key (MongoDB Aggregation)计算在文档键中出现的数组元素的数量(MongoDB 聚合)
【发布时间】:2018-01-15 03:30:04
【问题描述】:

我必须进行一些聚合,我必须计算一个新的键值,即出现在所述文档中的数组中的元素数,例如,如果我有一个演员列表,答案将是数字此列表中出现在一部电影中的演员。可以是全部,也可以只是一个。

我不确定我应该使用 $count 还是什么。

【问题讨论】:

  • 那么,你想找到一个数组的大小,不是吗?
  • 您能否发布一些示例文档以及示例的预期输出?

标签: arrays database mongodb counting


【解决方案1】:

您应该需要找到交集并获取数组的大小。

$setIntersection 将接受数组作为输入并返回数组中的匹配元素,因此一个数组将是您的搜索数组,另一个将是文档中的数组,一旦使用$size 获取交集计数

db.movies.aggregate(
   [
      {
         $project: {
            actorsCount: { $size: { $setIntersection : [$searchArray, $actor] } }
         }
      }
   ]
)

【讨论】:

    猜你喜欢
    • 2019-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多