我正在寻找一种方法让用户有可能在MongoDB上停止长时间运行的查询。 通过NodeJS支持的UI,用户可以通过MongoDB 3.2上的实时聚合请求一些数据。聚合可能需要花费太多时间,我想让用户取消操作并取消MongoDB上的查询执行。
取消查询的方法是已知的:
db.killOp(operationId)
问题是如何从nodejs驱动程序获取特定聚合查询的操作ID。我使用与Mongodb相同的连接来运行所有查询。
答案 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/