Ищите способ огородить коллекцию 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})
Другие вопросы по тегам