我正在寻找一种在python(2.7)程序中对现有集合进行远程执行分片的方法。 我无法找到执行该功能的API(pymongo),或者可能只是看起来不够好。
这样的事情可能吗?
提前致谢
答案 0 :(得分:10)
按照setting up a sharded cluster的说明操作,直到将“mongo”shell连接到mongos服务器并说:
sh.enableSharding("<database>")
相反,只需键入不带括号的命令即可查看enableSharding
的代码:
sh.enableSharding
您可以看到它在“admin”数据库上执行{ enableSharding : dbname }
,因此使用pymongo执行此操作:
client = pymongo.MongoClient()
client.admin.command('enableSharding', 'dbname')
显然,将'dbname'替换为您的数据库名称。重复以对集合进行分片。从shell获取代码:
sh.shardCollection
在Python中执行相同的命令:
client.admin.command('shardCollection', 'dbname.collectionname', key={'shardkey': 1})