在Databricks中清空MongoDB集合报错:'Collection'对象不可调用
问题分析与修复方案
你的代码存在三个关键问题,直接导致了报错和功能失效:
1. 方法名拼写不符合PyMongo规范
PyMongo中批量删除文档的方法是delete_many()(下划线分隔命名),而非你写的deleteMany()(驼峰命名)——后者是MongoDB JavaScript驱动的写法,Python版本的库遵循PEP8下划线命名规则。
2. 集合引用完全错误
你已经通过Collection = db["calendari_jar"]获取了目标集合对象,但后续错误调用了db.members.deleteMany(...):
db.members指向的是名为members的集合,并非你要操作的calendari_jar- 正确操作应该直接使用已定义的
Collection对象,或者直接调用db["calendari_jar"]
3. 参数传递错误
delete_many()需要传入查询条件文档,比如{}表示匹配所有文档,而不是集合名称字符串。传入字符串会导致PyMongo无法解析查询规则,进而触发类型错误。
修复后的完整代码
import json from pymongo import MongoClient # 建立MongoDB连接 myclient = MongoClient("mongodb+srv://****@****.g56cp.mongodb.net") # 指定目标数据库 db = myclient["intellitur"] # 切换到目标集合 Collection = db["calendari_jar"] # 清空集合所有数据(保留集合结构) Collection.delete_many({})
额外说明
如果需要确认删除结果,可以接收返回对象并查看删除计数:
result = Collection.delete_many({}) print(f"成功删除 {result.deleted_count} 条文档")
内容的提问来源于stack exchange,提问作者Jose Maria Acevedo Reinoso
相关产品推荐
相关产品推荐

