Python 分页,总记录计数不重复,聚合查询中也有限制
这是一个查询,我试图聚合,我的要求是获得总记录数,以及限制为15的分页。我得到了结果,但似乎有重复。请指出我遗漏了什么Python 分页,总记录计数不重复,聚合查询中也有限制,python,mongodb,pymongo,Python,Mongodb,Pymongo,这是一个查询,我试图聚合,我的要求是获得总记录数,以及限制为15的分页。我得到了结果,但似乎有重复。请指出我遗漏了什么 db.collections.aggregate([ { "$match": { "application_id": "some_app_id" } }, { "$lookup": { "localField": "_id", "fro
db.collections.aggregate([
{
"$match": {
"application_id": "some_app_id"
}
},
{
"$lookup": {
"localField": "_id",
"from": "collection1",
"foreignField": "some_id",
"as": "merged"
}
},
{
"$unwind": {"path": "$merged"}
},
{
"$group": {
"_id": null,
"count": {"$sum": 1},
"posts": {
"$push":"$$ROOT"
}
}
},
{
"$unwind": "$posts"
},
{
"$group": {
"_id": "$posts._id",
"data":{"$addToSet":"$posts"},
"count": {"$first" : "$count"},
"posts": {
"$push":"$$ROOT"
}
}
},
{
"$project":{
"_id": 1,
"count": 1,
"data": 1
}
}
])
实际产出
“计数”:89//这里的计数实际上是33,但不知怎么的,我得到了89
预期产出
“count”:33没有重复项您能否告诉我们您试图对聚合查询做什么,除非我们知道它应该做什么,否则我们将无法调试您的聚合查询是否正常工作,或者问题出在哪里。另外,请向我们展示您的模式,这有助于检查聚合管道的正确性。@RaviShankarBharti我正在尝试通过聚合合并两个不同的集合,我需要在“跳过”和“限制”选项之前先计算总记录数,因为最后我只得到15条记录!因此,计数是15,但实际上总记录计数是33。在这个查询中,计数为89,这是元素数组的总数。你能分享你正在合并的两个模式吗?@RaviShankarBharti谢谢你,我通过facet方法实现了这一点,这真是太棒了。你能告诉我们你想用聚合查询做什么吗,除非我们知道它应该做什么,我们将无法调试聚合查询是否正常工作,或者问题出在哪里。另外,请向我们展示您的模式,这有助于检查聚合管道的正确性。@RaviShankarBharti我正在尝试通过聚合合并两个不同的集合,我需要在“跳过”和“限制”选项之前先计算总记录数,因为最后我只得到15条记录!因此,计数是15,但实际上总记录计数是33。在这个查询中,计数为89,这是元素数组的总数。你能分享你正在合并的两个模式吗?@RaviShankarBharti谢谢,我通过facet方法实现了这一点,这真是太棒了。