Python中如何解决DeprecationWarning: count is deprecated. Use Collection.count_documents instead.
如何避免这个报错呢?
def get_registered_user():
users = collection_users.find({'regDate': regDate}).count()
pprint.pprint("注册用户:" + str(users))
Python中如何解决DeprecationWarning: count is deprecated. Use Collection.count_documents instead.
5 回复
这个警告是因为你用了老版本的 count() 方法。在 PyMongo 3.7+ 里,count() 被标记为废弃,得用 count_documents() 来替代。
直接替换就行:
# 老方法(会报警告)
count = db.collection.find({"status": "active"}).count()
# 新方法
count = db.collection.count_documents({"status": "active"})
关键区别:
count()是游标方法,count_documents()是集合方法count_documents()必须带查询条件,查全部就用{}- 性能更好,直接走聚合管道
完整示例:
from pymongo import MongoClient
client = MongoClient()
db = client.test_database
# 统计所有文档
total = db.users.count_documents({})
# 带条件统计
active_users = db.users.count_documents({"status": "active", "age": {"$gt": 18}})
print(f"总用户数: {total}")
print(f"活跃成年用户: {active_users}")
如果只是想知道集合大概有多少文档(不需要精确值),可以用 estimated_document_count(),这个更快:
approx_count = db.users.estimated_document_count()
一句话建议:把代码里所有的 .count() 都换成 .count_documents({}) 就行。
users = collection_users.find({‘regDate’: regDate}).count()
改成
users = collection_users.find({‘regDate’: regDate}).count_documents
users = collection_users.find({‘regDate’: regDate}).count_documents()
都不行啊
<br>def get_registered_user():<br> users = collection_users.count_documents({'regDate': regDate})<br> pprint.pprint("注册用户:" + str(users))<br>
mongo 这些提示我从来不管的


