【发布时间】:2020-06-25 04:34:06
【问题描述】:
我正在尝试获取 pymongo aggregate 方法的结果计数。 aggregate 方法返回一个command_cursor 对象,但根据pymongo docs,只有cursor 对象有一个count() 方法。如何在不使用任何循环的情况下获取 aggregate 函数的结果计数?
【问题讨论】:
标签: python pymongo aws-documentdb
我正在尝试获取 pymongo aggregate 方法的结果计数。 aggregate 方法返回一个command_cursor 对象,但根据pymongo docs,只有cursor 对象有一个count() 方法。如何在不使用任何循环的情况下获取 aggregate 函数的结果计数?
【问题讨论】:
标签: python pymongo aws-documentdb
我认为您应该从聚合中返回计数:
pipeline = [
{"$match": YOURQUERY},
{"$group": {"_id": groupby, "count": {"$sum":1}}}, # this returns count
{YOUR_PIPELINES}
]
cursor = db.collection.aggregate(pipeline)
【讨论】:
count 字段吗?
$group 管道,所以我需要使用python 完成一些事情。请将其添加为答案。
你可以这样做:
result = list(db.collection.aggregate([...]))
print(len(result))
【讨论】: