MongoDB 4.1 TotalRecords 和聚合中的数据
Posted
技术标签:
【中文标题】MongoDB 4.1 TotalRecords 和聚合中的数据【英文标题】:MongoDB 4.1 TotalRecords and Data in Aggregate 【发布时间】:2020-05-18 12:10:11 【问题描述】:我遇到了一个问题,因为我是 mongo 的新手,但我想解决它。
我有不同的集合,我通过查找进行汇总,效果很好。 但是现在,我想在结果的标题中显示总记录的总和。
我现在的第一个问题是我的参与者关系是一个数组,我的第二个问题是我不知道如何在响应中将 TotalCount 和数据彼此分开。
结果应该是这样的:
"totalRecords": 12,
"itemsPerPage": 10,
"docs":
"_id": "7429437848adssk",
"title": "abc"
"actors" [
"name": "Mr.x" ,
"name": "Mrs.Y"
]
我通过以下阶段解决了没有总数的聚合:
-
放松演员
查找演员
在第一个集合中使用 $first 并在演员中使用 $addToSet 进行分组
我没有计数的响应结果符合预期,但如果我将 $count 添加到组中,它会计算演员,而在 1 个具有 2 个演员的文档上,它会计数 2。但我想计算每个文档的计数。
有人可以为我提供一个关于我的问题的简单工作示例吗?
【问题讨论】:
看看$facet
运营商
你有我的小例子吗?
【参考方案1】:
您需要在聚合结束时添加这 3 个步骤
$facet:
totalRecords: [
$count: "totalRecords"
],
docs: [
$match:
]
,
$unwind: "$docs"
,
$addFields:
totalRecords:
$arrayElemAt: [
"$totalRecords.totalRecords",
0
]
MongoPlayground
【讨论】:
以上是关于MongoDB 4.1 TotalRecords 和聚合中的数据的主要内容,如果未能解决你的问题,请参考以下文章