假设我有一个带有数组字段的集合:
{
title: String,
users: [String],
}
现在,我需要从集合中查询文档列表,仅在每个列表中使用users
的长度,而在users
数组中不使用实际元素(因为它可能很大,所以不会)值得从db获取它们并计算长度):
Collection.find({}).sort({ _id: -1 })
有可能吗?
答案 0 :(得分:2)
您可以使用$size
聚合运算符来查找users
数组的长度
db.collection.aggregate([
{ "$project": { "userLength": { "$size" :"$users" }}}
])
如果要查找数据库中存在的所有users
数组长度
db.collection.aggregate([
{ "$group": {
"_id": null,
"allUsersArrayLength": { "$sum": { "$size": "$users" }}
}}
])