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

Men*_*kov 3 python sharding mongodb pymongo python-2.7

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

这样的事可能吗?

提前致谢

A. *_*vis 10

按照设置分片群集的说明进行操作,直到将"mongo"shell连接到mongos服务器并说:

sh.enableSharding("<database>")
Run Code Online (Sandbox Code Playgroud)

相反,enableSharding只需键入不带括号的命令即可查看代码:

sh.enableSharding
Run Code Online (Sandbox Code Playgroud)

您可以看到它{ enableSharding : dbname }在"admin"数据库上执行,所以使用pymongo执行此操作:

client = pymongo.MongoClient()
client.admin.command('enableSharding', 'dbname')
Run Code Online (Sandbox Code Playgroud)

显然,将'dbname'替换为您的数据库名称.重复以对集合进行分片.从shell获取代码:

sh.shardCollection
Run Code Online (Sandbox Code Playgroud)

并在Python中执行相同的命令:

client.admin.command('shardCollection', 'dbname.collectionname', key={'shardkey': 1})
Run Code Online (Sandbox Code Playgroud)