Python 如何从pymongo聚合中获取结果计数?
我正在尝试获取pymongoPython 如何从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
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完成一些事情。请加上这个作为回答。