Подтвердить что ты не робот

Как прервать выполняемый запрос в оболочке MongoDB?

Я не могу поверить, что я должен спросить об этом, но как остановить запрос, который я только что запускал, который сейчас работает, и, очевидно, потребуется очень много времени для завершения в оболочке Mongo? Control+C, похоже, разбивает оболочку и выплескивает массу ошибок. Глупые решения, предложенные в этом сообщении, конечно, ничего не делают. Я понимаю, что мне хотелось бы открыть еще одну вкладку терминала и запустите db.currentOp(), найдите идентификатор операции, а затем запустите db.killOp(), но я не могу поверить, что это единственное решение. Я должен упустить что-то очевидное.

4b9b3361

Ответ 1

Основываясь на ответе Алекса.

  • Текущие текущие операции запроса:

    db.currentOp()
    

Mongo currentOp Response

  1. Убейте операцию на основе opid

    db.killOp(30318806)
    

Ответ 2

Согласно документации Mongo вам необходимо:

  • Получить текущий идентификатор операции с помощью db.currentOp()
  • Убейте opp через db.killOp()

Хороший пример script можно найти здесь.

Ответ 3

Для кластерного кластера:

  • db.currentOp()
  • db.killOp("shard_id:opid")

Например:

db.killOp("shard0000:3134616")