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

时间:2014-11-14 23:36:37

标签: mongodb mongodb-query

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

3 个答案:

答案 0 :(得分:32)

根据Alex的回答。

  1. 查询当前运行的操作:

    db.currentOp()
    
  2. Mongo currentOp Response

    1. 根据opid

      终止操作
      db.killOp(30318806)
      

答案 1 :(得分:7)

根据Mongo documentation,你应该:

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

    可以找到好的示例脚本here

答案 2 :(得分:0)

对于分片群集:

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

    db.killOp("shard0000:3134616")