【发布时间】:2020-09-04 23:52:58
【问题描述】:
目前,我正在使用 bash 脚本来启用 DB 分片,然后进行分片收集。 我正在使用评估:
mongo <ip_host> --eval "sh.enableSharding(<name_db>)
然后,令人惊讶的是,碎片收集:
mongo <ip_host> --eval "sh.shardCollection("<db_name>.<collection>", {shardKey : 1})"
我正在尝试做同样的事情,但从 Python 使用 pymongo lib。 我有一些想法:
client = pymongo.MongoClient()
client.admin.command('enableSharding', db_name)
client.admin.command('shardCollection', f'{db_name}.{collection}), key=shard_key)
或使用评估:
db_name.eval("sh.enableSharding", collection)
db_name.eval("sh.shardCollection", collection)
但是这些方法都不起作用。 您有什么建议或者我应该使用 os.system() 从 Python 调用 bash 脚本吗?
【问题讨论】:
-
一般来说,
mongoshell 是用于所有管理操作的命令行工具。驱动程序主要用于应用程序开发。
标签: python json mongodb relational-database pymongo