Я не могу поверить, что я должен спросить об этом, но как остановить запрос, который я только что запускал, который сейчас работает, и, очевидно, потребуется очень много времени для завершения в оболочке Mongo? Control+C
, похоже, разбивает оболочку и выплескивает массу ошибок. Глупые решения, предложенные в этом сообщении, конечно, ничего не делают. Я понимаю, что мне хотелось бы открыть еще одну вкладку терминала и
запустите db.currentOp()
, найдите идентификатор операции, а затем запустите db.killOp()
, но я не могу поверить, что это единственное решение. Я должен упустить что-то очевидное.
Как прервать выполняемый запрос в оболочке MongoDB?
Ответ 1
Основываясь на ответе Алекса.
-
Текущие текущие операции запроса:
db.currentOp()
-
Убейте операцию на основе opid
db.killOp(30318806)
Ответ 2
Согласно документации Mongo вам необходимо:
- Получить текущий идентификатор операции с помощью
db.currentOp()
- Убейте opp через
db.killOp()
Хороший пример script можно найти здесь.
Ответ 3
Для кластерного кластера:
-
db.currentOp()
-
db.killOp("shard_id:opid")
Например:
db.killOp("shard0000:3134616")