2016-10-23 2 views
0

MongoDBで長時間実行されるクエリを停止する方法をユーザに提供する方法を探しています。 NodeJSにバックアップされたUIを通じて、ユーザはMongoDB 3.2でリアルタイム集計によって提供されるデータを要求します。集計に時間がかかり過ぎるため、MongoDBの操作を取り消してクエリの実行をキャンセルできるようにしたいと考えています。NodeJSネイティブmongodbドライバからMongoDB操作IDを取得してdb.killOpに使用する

クエリをキャンセルする方法が知られている: db.killOp(operationId)

質問は、私は特定の集計クエリのnodejsドライバからの操作IDを取得することができる方法です。私はMongodbと同じ接続を使用して、すべてのクエリを実行します。

答えて

0

あなたは

db.executeDbAdminCommand({"killOp":1}, {"op": operationId}) 

不明でoperationId場合は、あなたが現在取得しcurrentOpを使用して、すべての操作を一覧表示したり、すべての操作ができexecuteDbAdminCommandコマンドを使用して管理操作を実行することができ

+0

私は同時に集計を実行する10人のユーザーがいます。ユーザーXが「キャンセル」を押すと、このユーザーの集計クエリをキャンセルする必要があります。 killOpにはどの操作IDを使用する必要がありますか?また、すべてのユーザーが同じ集約パイプラインを持っています。 – rlib

+0

ああ、それはnodejsに関係していない全く異なる問題です。 –

+0

この特定のドメインで別の質問を作成することをお勧めします。この問題は、問題がnode.jsとmondodbドライバであることを示唆しています。これは真実ではないか、または将来この問題を解決すると問題になります。 –

関連する問題