1. 程式人生 > >python mongodb建立分片指令碼

python mongodb建立分片指令碼

注意

建立分片需要在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})