【问题标题】:Mongoose MongoDB find the one with smallest array-length of an array-fieldMongoose MongoDB 找到数组字段中数组长度最小的那个
【发布时间】:2021-09-27 21:49:39
【问题描述】:

我需要集合中的文档,该集合中的字段数组大小最小。 文档如下:

{
    "_id": ObjectId("jsd273rsdjkvn847ckjnas74"),
    "associatedUsers": [
        ObjectId("jsd273rsdjkvn847ckjnas75"),
        ObjectId("jsd273rsdjkvn847ckjnas76")
    ]
}

在 MongoDB 的所有文档中,我需要找到其数组中关联用户数量最少的文档。基本上是数组长度最短的那个。

【问题讨论】:

    标签: node.js mongodb mongoose nosql aggregation-framework


    【解决方案1】:

    您可以使用$addFields根据数组$size计算新字段,然后使用$sort$limit得到数组最小的文档:

    db.collection.aggregate([
        {
            $addFields: {
                size: { $size: "$associatedUsers" }
            }
        },
        {
            $sort: { size: 1 }
        },
        {
            $limit: 1
        }
    ])
    

    Mongo Playground

    【讨论】:

      猜你喜欢
      • 2016-09-08
      • 2016-06-16
      • 2022-01-05
      • 2014-12-11
      • 2019-08-30
      • 2022-08-14
      • 1970-01-01
      • 2019-01-03
      • 1970-01-01
      相关资源
      最近更新 更多