随笔 - 836  文章 - 1 评论 - 40 阅读 - 102万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

今天处理游标非空判断,一直报错:

 

问题: DeprecationWarning: count is deprecated. Use Collection.count_documents instead

1.如果仅仅只需要数量:

当我使用pymongo查询出对应的cursor(find出的document的迭代器),然后查看查询出数据的数量时使用如下代码:

db = MongoClient(host='192.168.18.129', port=27017)
coll = db.dbname.collectionname
cursor = coll.find({'name': 'zhangsan'}).limit(10)
print(cursor.count()

弹出警报DeprecationWarning: count is deprecated. Use Collection.count_documents instead. print(cursor.count())

原因
这是由于mongodb现在迭代器数据的搜集Collection.count()方式已经被弃用,更高的版本不适用。已经使用Collection.count_documents来统计了。

 

正确的使用方法是这样的: 但是这不是我要的,如果仅仅想知道数量,可以

num = coll.count_documents({'name': 'zhangsan'})
print(num)  

2.查询结果,在遍历游标前,先判断数量

先强转为list, 再把list指向之前的变量
        user_cursor = coll.find({'name': 'zhangsan'}).limit(1000)
        user_list = list(user_cursor)
       #非空判断if len(user_list) == 0:
            print("can't get  user info ")
            flag = False
else:
for user in user_list:
print(user)

 

 

posted on   lshan  阅读(2644)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2019-08-11 git 搭建个人网站 项目网站
2019-08-11 git 的基本使用
点击右上角即可分享
微信分享提示