Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从pymongo聚合中获取结果计数?_Python_Pymongo_Aws Documentdb - Fatal编程技术网

Python 如何从pymongo聚合中获取结果计数?

Python 如何从pymongo聚合中获取结果计数?,python,pymongo,aws-documentdb,Python,Pymongo,Aws Documentdb,我正在尝试获取pymongoaggregate方法的结果计数。aggregate方法返回一个command\u cursor对象,但根据该方法,只有cursor对象有一个count()方法。如何在不使用任何循环的情况下获取聚合函数的结果计数?我认为您应该从聚合返回计数: pipeline = [ {"$match": YOURQUERY}, {"$group": {"_id": groupby, "count": {"$sum":1}}}, # this returns co

我正在尝试获取pymongo
aggregate
方法的结果计数。
aggregate
方法返回一个
command\u cursor
对象,但根据该方法,只有
cursor
对象有一个
count()
方法。如何在不使用任何循环的情况下获取聚合函数的结果计数?

我认为您应该从聚合返回计数:

pipeline = [
     {"$match": YOURQUERY},
     {"$group": {"_id": groupby, "count": {"$sum":1}}}, # this returns count
     {YOUR_PIPELINES}
]
cursor = db.collection.aggregate(pipeline)

我认为您应该从聚合中返回count:

pipeline = [
     {"$match": YOURQUERY},
     {"$group": {"_id": groupby, "count": {"$sum":1}}}, # this returns count
     {YOUR_PIPELINES}
]
cursor = db.collection.aggregate(pipeline)
你可以做:

result = list(db.collection.aggregate([...]))
print(len(result))
你可以做:

result = list(db.collection.aggregate([...]))
print(len(result))

这不是为返回的每个结果都添加了一个
count
字段吗?这是一组具有某种标准的文档的计数。您可以通过对文档进行分组来计数,然后将计数传递到管道的下一个阶段。要么就是这个答案,要么就是do:len(list(cursor))@ScamCast,这正是我想要的。我不想在我的查询中添加
$group
管道,所以我需要使用python完成一些事情。请将其添加为答案。这不是为返回的每个结果添加了一个
count
字段吗?这是一组具有某些标准的文档的计数。您可以通过对文档进行分组来计数,然后将计数传递到管道的下一个阶段。要么就是这个答案,要么就是do:len(list(cursor))@ScamCast,这正是我想要的。我不想在我的查询中添加
$group
管道,所以我需要使用python完成一些事情。请加上这个作为回答。