我正在使用find
从数据库中提取数据,并使用count
检查是否有任何内容(或是否为空)。
count is deprecated. Use Collection.count_documents instead.
令我大叫,但是当我更改它时,
'Cursor' object has no attribute 'count_documents'
。我尝试将collection
添加到db.find()
,但仍然没有。
def stuff(x):
return db['stuffs'].find({"stuff": x})
def check_for_stuff(x):
things = stuff(x)
if not things.count():
return None
答案 0 :(得分:1)
count_documents
在集合级别起作用。因此,使用它的合适方法是通过将过滤器直接传递到db.collection.count_documents({"stuff": x})
方法来使用count_documents
查询数据库。
因此check_for_stuff
可能类似于:
def check_for_stuff(x):
count = db['stuffs'].estimated_document_count({"stuff": x}) //or db['stuffs'].count_documents({"stuff": x}) or db.collection.count_documents({"stuff": x}) depending on your use case
......Do what you need to do....
使用estimated_document_count可获得更好的性能。
Here是为什么您需要进行两次数据库调用