如何在MongoDB shell中中止正在运行的查询?

col*_*Two 37 mongodb mongodb-query

我不敢相信我要问这个,但是如何停止我刚刚运行的查询,现在正在运行,显然需要很长时间才能在Mongo shell中完成?Control+C似乎崩溃了外壳,并吐出了大量的错误.这篇文章中提出的愚蠢的解决方案当然不会做任何事情.我知道我可以打开另一个终端选项卡并运行db.currentOp(),找到操作ID,然后运行db.killOp(),但我无法相信这是唯一的解决方案.我一定错过了一些明显的东西.

Roo*_*ahi 38

根据Alex的回答.

  1. 查询当前运行操作:

    db.currentOp()
    
    Run Code Online (Sandbox Code Playgroud)

Mongo currentOp响应

  1. 基于opid杀死操作

    db.killOp(30318806)
    
    Run Code Online (Sandbox Code Playgroud)


Ale*_*gin 8

根据Mongo 文档,您应该:

  1. 通过获取当前操作ID db.currentOp()
  2. 杀死对手 db.killOp()

可以在这里找到好的示例脚本.


小智 5

对于分片集群:

  1. db.currentOp()
  2. db.killOp("shard_id:opid")

例如:

db.killOp("shard0000:3134616")
Run Code Online (Sandbox Code Playgroud)