正如标题所示,我尝试在集合上使用
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))
谢谢!
list()
将耗尽光标,但将其输出保存到变量中,您可以多次访问它,例如
records = list(col.find())
num_records = len(records)
for record in records:
# do stuff
您可以使用:
db.collection.count_documents(query)
您的情况:
def temp(col):
return col.count_documents({})