arrays - 计算文档键中出现的数组元素的数量(MongoDB 聚合)

标签 arrays database mongodb counting

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

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

最佳答案

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

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

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

关于arrays - 计算文档键中出现的数组元素的数量(MongoDB 聚合),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48256602/

相关文章:

C++ 数组包装器

python - 使用 Numpy 迭代列并提供给函数

c - 尝试填充结构数组时发生访问冲突

javascript - Meteor.js 和 Collection2 : Update Method that Inserts New Object in subschema

c++ - 数组到数组——在 C++ 中将 'int*' 分配给 'int 错误时的类型不兼容

c# - 在 N 层架构中实现数据库功能对象?

database - 在Firebase中,有没有一种方法可以在不加载所有节点数据的情况下获取节点的子节点数量?

database - Solaris - 同步磁盘刷新/同步同步?

C API 上的 mongodb 分组

MongoDB 搜索仅返回特定字段