Cursor.count() 在 pymongo 4.3.3 中给出 AttributeError

问题描述 投票:0回答:2

正如标题所示,我尝试在集合上使用

count()
find()
,但它一直抛出错误
AttributeError: 'Cursor' object has no attribute 'count'

作为参考,我经历了这个问题,但是

count_documents()
似乎适用于集合本身,而不是游标。提到的另一个选项是
len(list(cursor))
但我不能使用它,因为它消耗光标本身(此后无法迭代它)。我又查了几个答案,但这些似乎是主要的出路。

而且,我的pymongo版本是

4.3.3
,由于一些限制,无法更改。

有什么操作可以直接在

Cursor
上执行而不消耗它吗?

示例代码

def temp(col):
    return col.find().count()

print(temp(collection))

谢谢!

python cursor pymongo
2个回答
1
投票

list()
将耗尽光标,但将其输出保存到变量中,您可以多次访问它,例如

records = list(col.find())
num_records = len(records)

for record in records:
    # do stuff

0
投票

您可以使用:

db.collection.count_documents(query)

您的情况:

def temp(col):
    return col.count_documents({})
© www.soinside.com 2019 - 2024. All rights reserved.