将变量值替换为 python 中的命令

Substitute variable value to command in python

我正在尝试编写一个简单的 python 脚本来从 mongodb 收集某些命令输出,作为备份前后验证数据库的一部分。

下面是脚本。

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

所有集合都存储在名为 collections 的列表中,我想 运行 它在 for 循环中,以便我可以获得每个集合中的文档计数。我知道这里最后的打印语句是错误的。如何做对?我希望 $i 在每次迭代期间替换集合名称,以便我可以获得该集合的文档数。

当我 运行 "print(db.audit.estimated_document_count())" 时,它会给我审计集合中的文档计数。但是如何在for循环中遍历列表并替换命令中i的值呢?

此外,为了验证 backup/restore 是否有任何其他命令我应该 运行 针对数据库来验证 backup/restore?

您不能在“点”表达式中使用计算值作为标识符,至少不能不使用卑鄙的把戏。

可以做的是找到一些其他机制来获取给定名称的集合。根据 tutorial and API reference,您可以使用 db['foo'] 而不是 db.foo