Ищите способ огородить коллекцию MongoDB из кода Python
Я ищу способ удаленного выполнения шардинга в существующей коллекции из программы Python (2.7). Я не смог найти API, который выполняет это (pymongo), или, возможно, просто не выглядел достаточно хорошо.
Возможна ли такая вещь?
заранее спасибо
1 ответ
Решение
Следуйте инструкциям по настройке сегментированного кластера до точки, где вы подключаете оболочку "mongo" к серверу mongos, и говорите:
sh.enableSharding("<database>")
Вместо этого просмотрите код для enableSharding
просто набрав команду без скобок:
sh.enableSharding
Вы можете видеть, что он выполняет { enableSharding : dbname }
на БД "admin", так что сделайте это с pymongo:
client = pymongo.MongoClient()
client.admin.command('enableSharding', 'dbname')
Замените 'dbname' на имя вашей базы данных, очевидно. Повторите, чтобы осколить коллекцию. Получить код из оболочки:
sh.shardCollection
И выполните ту же команду в Python:
client.admin.command('shardCollection', 'dbname.collectionname', key={'shardkey': 1})