【问题标题】:Substitute variable value to command in python在python中将变量值替换为命令
【发布时间】:2021-11-05 18:10:17
【问题描述】:

我正在尝试编写一个简单的 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())

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

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

另外,为了验证备份/恢复,我应该对数据库运行任何其他命令来验证备份/恢复吗?

【问题讨论】:

    标签: python database mongodb pymongo database-backups


    【解决方案1】:

    您不能在“点”表达式中使用计算值作为标识符,至少在不使用肮脏技巧的情况下不能。

    可以做的是找到一些其他的机制来获取给定名称的集合。根据tutorialAPI reference,可以用db['foo']代替db.foo

    【讨论】:

    • 原来很简单。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-27
    • 2023-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    相关资源
    最近更新 更多