python mongodb建立分片指令碼
阿新 • • 發佈:2018-11-28
注意
建立分片需要在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})