node.js - Mongodb查询文档数组字段长度不取数组
问题描述
假设我有一个包含数组字段的集合:
{
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" }}
}}
])
推荐阅读
- javascript - Ajax 找不到 PHP 文件位置
- javascript - 有没有办法使用 Javascript 获取私有 IP
- .net - 如何在 Blazor 组件 HTML 属性中转义 @?
- numpy - 从python中的测试标签中删除零值
- ios - 如何取消选择 NavigationLink 中的列表按钮
- html - 三里等宽
- swift - 如何设计一个字符串类型扩展来表示一周中的某一天并返回相应的数字?斯威夫特
- php - PHP 搜索查询结果不显示撇号
- ios - 如何在图像完全加载 iOS Swift 之前隐藏 tableview?
- python - 在 python 中实现用于局部对齐的 Smith-Waterman 算法