mongodb - MongoDB 4.1 TotalRecords 和聚合中的数据
问题描述
我面临一个问题,因为我是 mongo 的新手,但我想解决它。
我有不同的集合,我通过查找进行汇总,这些集合运行完美。但是现在,我想在结果的标题中显示总记录的总和。
我现在的第一个问题是我的演员关系是一个数组,我的第二个问题是我不知道如何在响应中将 TotalCount 和数据彼此分开。
结果应如下所示:
{
"totalRecords": 12,
"itemsPerPage": 10,
"docs": {
"_id": "7429437848adssk",
"title": "abc"
"actors" [
{"name": "Mr.x" },
{"name": "Mrs.Y"}
]
}
}
我通过以下阶段解决了没有总数的聚合:
- 放松演员
- 查找演员
- 在第一个集合上使用 $first 并在演员的 $addToSet 上分组
我没有计数的响应的结果与预期的一样,但是如果我将 $count 添加到组中,它会计算演员,并且在 1 个具有 2 个演员的文档上计数 2。但我想计算每个文档的计数。
有人可以为我提供一个关于我的问题的简单工作示例吗?
解决方案
您需要在聚合结束时添加这 3 个步骤
{
$facet: {
totalRecords: [
{
$count: "totalRecords"
}
],
docs: [
{
$match: {}
}
]
}
},
{
$unwind: "$docs"
},
{
$addFields: {
totalRecords: {
$arrayElemAt: [
"$totalRecords.totalRecords",
0
]
}
}
}
推荐阅读
- python-3.x - 文件编号将如何影响 Gensim LDA 的结果?
- jquery - 需要在引导程序中的桌面和移动版本的菜单中切换按钮
- python - 在数据框的两列应用模糊匹配分数
- javascript - 无法打印出数组
- android - 如何在 Kotlin 的自定义 tablayout 中更改 tablayout 选定的文本颜色
- python - Python pandas datetime plot xticks不在偶数间隙中
- alert - Prometheus cpu 秒到百分比
- c# - 网页上是否有带有omnisharp的monaco-editor示例项目
- laravel - Laravel 5.6 php artisan route:list shwoing only api middleware 为什么?
- sql-server - 有什么简单的方法可以将标准 SQL 语句转换为动态查询?