Mongodb:在我的 python 代码中分片集合

Mongodb: Shard a collection within my python code

我有一个分布式 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')