我有这个汇总查询:
cr = db.last_response.aggregate([
{"$unwind": '$blocks'},
{"$match": {"sender_id": "1234", "page_id": "563921", "blocks.tag": "pay1"}},
{"$project": {"block": "$blocks.block"}}
])
现在我想获取它返回的元素数量(是否为空游标)。
这就是我的做法: 我定义了一个空数组:
x = []
我遍历游标并附加数组x:
for i in cr :
x.append(i['block'])
print("length of the result of aggregation cursor :",len(x))
我的问题是:有没有像find()查询的count()方法那样更快的方法来获取聚合查询结果的数量?
谢谢
答案 0 :(得分:1)
更快的方法是拒绝将所有数据从mongod传输到应用程序的操作。为此,您可以添加最后的小组讨论来对文档进行计数
{"$group": {"_id": None, "count": {"$sum": 1}}},
这意味着mongod会汇总并作为文档的结果计数。 如果不执行聚合管道,就无法获得结果计数。