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