Mongoose MongoDB 找到数组字段中数组长度最小的那个
Posted
技术标签:
【中文标题】Mongoose MongoDB 找到数组字段中数组长度最小的那个【英文标题】:Mongoose MongoDB find the one with smallest array-length of an array-field 【发布时间】:2021-09-27 21:49:39 【问题描述】:我需要集合中的文档,该集合中的字段数组大小最小。 文档如下:
"_id": ObjectId("jsd273rsdjkvn847ckjnas74"),
"associatedUsers": [
ObjectId("jsd273rsdjkvn847ckjnas75"),
ObjectId("jsd273rsdjkvn847ckjnas76")
]
在 MongoDB 的所有文档中,我需要找到其数组中关联用户数量最少的文档。基本上是数组长度最短的那个。
【问题讨论】:
【参考方案1】:您可以使用$addFields根据数组$size计算新字段,然后使用$sort和$limit得到数组最小的文档:
db.collection.aggregate([
$addFields:
size: $size: "$associatedUsers"
,
$sort: size: 1
,
$limit: 1
])
Mongo Playground
【讨论】:
以上是关于Mongoose MongoDB 找到数组字段中数组长度最小的那个的主要内容,如果未能解决你的问题,请参考以下文章
如果未找到值,则使用 mongoose 将对象添加到数组中,否则更新字段
使用 mongoose 在 mongodb 中保存多个字段数组
如何使用 mongoose 和 NodeJs 在 Mongodb 的数组字段中插入数据
在 Mongoose/MongoDB 的文档中过滤数组、子文档、数组、文档