如何从 MongoDB 集合中存在的一组文档中找到数组的最大长度?

Posted

技术标签:

【中文标题】如何从 MongoDB 集合中存在的一组文档中找到数组的最大长度?【英文标题】:How to find the max length of an array from a set of documents present in a collection in MongoDB? 【发布时间】:2021-08-04 16:07:50 【问题描述】:

我在 MongoDB 的集合中存在 'n' 个文档。 这些文件的结构如下:


    "_id": "...",
    "submissions": [..., ...]

我想在所有存在的文档中找到提交次数最多的文档。 是否有任何 Mongo 查找/聚合查询可以做到这一点?

【问题讨论】:

【参考方案1】:

我认为没有任何直接的方法可以实现这一目标,

你可以试试下面的聚合查询,

$addFields 添加新字段 totalSubmissions 以获取 submissions 数组中的总元素 $sort totalSubmissions 按降序排列 $limit选择单个文档
collection.aggregate([
   $addFields:  totalSubmissions:  $size: "$submissions"   ,
   $sort:  totalSubmissions: -1  ,
   $limit: 1 
])

Playground

【讨论】:

以上是关于如何从 MongoDB 集合中存在的一组文档中找到数组的最大长度?的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB:如何在 100 个集合中找到 10 个随机文档?

MongoDB:如何在 100 个集合中找到 10 个随机文档?

MongoDB - 聚合查询

MongoDB:如何使用 expressjs 从所有集合中读取所有文档?

MongoDB:如何使用 expressjs 从所有集合中读取所有文档?

MongoDB - 如何从集合中查询嵌入式文档