Mongoose MongoDB 找到数组字段的数组长度最小的那个

Mongoose MongoDB find the one with smallest array-length of an array-field

我需要集合中字段数组大小最小的文档。 文件看起来如下:

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

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

您可以使用 $addFields to calculate new field based on array $size and then use $sort along with $limit 来获取具有最小数组的文档:

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

Mongo Playground