目前,我使用bash-script为DB启用分片,然后进行分片收集。我正在使用eval:
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)或者使用eval:
db_name.eval("sh.enableSharding", collection)
db_name.eval("sh.shardCollection", collection)但这两种方法都不起作用。您有什么建议吗?或者我是否应该使用os.system()从Python中调用bash-scripting?
发布于 2020-09-04 23:52:59
您的命令client.admin.command('enableSharding', db_name)是正确的;但是它是正确的;我怀疑您正在尝试对mongod实例运行它。
https://stackoverflow.com/questions/63740863
复制相似问题