从NodeJS本机mongodb驱动程序获取MongoDB操作ID以用于db.killOp

时间:2016-10-23 19:57:23

标签: node.js mongodb aggregation-framework

我正在寻找一种方法让用户有可能在MongoDB上停止长时间运行的查询。 通过NodeJS支持的UI,用户可以通过MongoDB 3.2上的实时聚合请求一些数据。聚合可能需要花费太多时间,我想让用户取消操作并取消MongoDB上的查询执行。

取消查询的方法是已知的: db.killOp(operationId)

问题是如何从nodejs驱动程序获取特定聚合查询的操作ID。我使用与Mongodb相同的连接来运行所有查询。

2 个答案:

答案 0 :(得分:1)

您可以使用executeDbAdminCommand命令

执行管理员操作
import Html exposing (text)
import Random exposing (..)

main =
  text <| toString <| Tuple.first <| step bool (initialSeed 1)

如果db.executeDbAdminCommand({"killOp":1}, {"op": operationId}) 未知,您可以使用currentOp列出所有操作以检索当前或所有操作

答案 1 :(得分:0)

使用db.currentOp()命令列出当前正在进行的每个操作 https://blog.serverdensity.com/mongodb-monitoring-current-operations/