python mongodb创建分片脚本

注意

创建分片需要在mongodb分片集群模式下进行

开启分片功能

#!/usr/bin/python3
import pymongo

mongodbUrl = 'mongodb://test:123456@192.168.1.61:27018,192.168.1.62:27018,192.168.1.63:27018'
dbName = "test"
myclient = pymongo.MongoClient(mongodbUrl)
adminDb_= myclient['admin']
adminDb.command('enablesharding', dbName)

设置片键

def create_sharding(sharding_col_db, col_name, sharding_colunm, ishashed=False):
    '''
    为一个集合进行分片、集合所在的数据库需要有分片权限、分片的 key 需要有对应的索引
    :param sharding_col_db: 分片集合所在的数据库
    :param col_name: 分片集合的名字
    :param sharding_colunm: 分片的 key
    :param ishashed: 是否为 hash 分片
    :return: {'collectionsharded': 'sharding_col_db.col_name', 'ok': 1.0}
    '''
    admin_db = myclient['admin']
    abs_path = '{}.{}'.format(sharding_col_db, col_name)
    sharding_type = 1 if not ishashed else 'hashed'
    return admin_db.command('shardCollection', abs_path, key = {sharding_colunm: sharding_type})
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值