寻找一种从Python代码中分割MongoDB集合的方法

时间:2014-02-19 13:56:51

标签: python mongodb python-2.7 pymongo sharding

我正在寻找一种在python(2.7)程序中对现有集合进行远程执行分片的方法。 我无法找到执行该功能的API(pymongo),或者可能只是看起来不够好。

这样的事情可能吗?

提前致谢

1 个答案:

答案 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})