You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中pymongo动态替换集合名变量及MongoDB备份验证方法

脚本修正方法

你原来的写法错误点在于不能用$i的方式动态引用集合名,Python中pymongo库支持通过字典下标语法传入字符串变量获取集合对象,修正后的代码如下:

import pymongo
import json
client = pymongo.MongoClient('localhost',username='admin',password='admin')
db = client['mydb']
collections = list(db.list_collection_names())
for coll_name in collections:
  print(db[coll_name].estimated_document_count())

补充说明:如果需要获得精确的文档数(而非近似统计值),可以把estimated_document_count()替换为count_documents({}),后者会扫描全集合统计,大集合下执行耗时更长。

备份恢复额外校验项

除了集合文档数校验之外,还可以执行以下校验操作确保备份恢复结果正确:

  • 集合元信息校验:遍历所有集合对比索引信息,通过db[coll_name].index_information()获取集合的所有索引定义,对比备份前后的索引数量、索引字段、唯一约束等配置是否一致
  • 数据一致性校验:可以抽样或者全量计算文档哈希值对比,比如对每个集合随机抽取100条文档,计算每条文档的JSON序列化哈希值,对比备份前后的结果是否匹配;全量场景可以对所有文档的哈希值排序后计算整体校验和对比
  • 数据库维度校验:对比备份前后的集合总数是否一致,通过db.command("dbstats")获取数据库总数据量、总存储占用等指标,确认数值偏差在合理范围内
  • 专用工具校验:如果使用官方的mongodump/mongorestore工具进行备份恢复,可以在执行命令时加上--verify参数,工具会自动对写入的备份数据做完整性校验

内容的提问来源于stack exchange,提问作者Gokul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:57:01