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