Python 分页,总记录计数不重复,聚合查询中也有限制

Python 分页,总记录计数不重复,聚合查询中也有限制,python,mongodb,pymongo,Python,Mongodb,Pymongo,这是一个查询,我试图聚合,我的要求是获得总记录数,以及限制为15的分页。我得到了结果,但似乎有重复。请指出我遗漏了什么 db.collections.aggregate([ { "$match": { "application_id": "some_app_id" } }, { "$lookup": { "localField": "_id", "fro

这是一个查询,我试图聚合,我的要求是获得总记录数,以及限制为15的分页。我得到了结果,但似乎有重复。请指出我遗漏了什么

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方法实现了这一点,这真是太棒了。