python mongodb创建分片脚本

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_40294332/article/details/84581901

注意

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

开启分片功能

#!/usr/bin/python3
import pymongo

mongodbUrl = 'mongodb://test:[email protected]: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})

猜你喜欢

转载自blog.csdn.net/weixin_40294332/article/details/84581901