我有一个分布式MongoDB 3.2数据库。该系统使用RedHat操作系统安装在两个节点上。
我想使用python和PyMongo驱动程序(或其他一些驱动程序)来启用集合的分片,并指定复合分片键。
在mongo shell中,它可以工作:
> use mongotest
> sh.enableSharding("mongotest")
> db.signals.createIndex({ valueX: 1, valueY: 1 }, { unique: true })
> sh.shardCollection("mongotest.signals", { valueX: 1, valueY: 1 })
(“ mongotest”是数据库,“ signals”是集合)
最后两行我想在代码中添加它们。有谁知道这在python中是否可行?如果是这样,怎么做?
非常感谢你,
对不起,我的英语不好
最佳答案
将shell命令直接转换为python如下所示。
from pymongo import MongoClient
client = MongoClient()
db = client.admin # run commands against admin database.
db.command('enableSharding', 'mongotest')
db.command({'shardCollection': 'mongotest.signals', 'key': {'valueX': 1, 'valueY': 1}})
但是,您可能需要通过运行以下命令来确认在数据库中同时公开了enableSharding和shardCollection
db.command('listCommands')