通过Java Mongo 3.4驱动程序或Spring Data Mongo访问currentOp

通过Java Mongo 3.4驱动程序或Spring Data Mongo访问currentOp,java,mongodb,spring-data-mongodb,Java,Mongodb,Spring Data Mongodb,我正在尝试通过JavaMongo驱动程序或spring运行以下内容 db.currentOp( { "active" : true, "secs_running" : { "$gt" : 3 } } ); 及 我正在使用 爪哇8 Mongo Java驱动程序3.4.3 弹簧数据Mongo 1.10.6 Mongo 3.4.9 有人知道这样做的好方法吗?提前谢谢 您可以在管理数据库上使用运行命令方法: MongoDatabase database = client.getData

我正在尝试通过JavaMongo驱动程序或spring运行以下内容

db.currentOp(
 {
  "active" : true,
  "secs_running" : { "$gt" : 3 }
 }
);

我正在使用

  • 爪哇8
  • Mongo Java驱动程序3.4.3
  • 弹簧数据Mongo 1.10.6
  • Mongo 3.4.9

有人知道这样做的好方法吗?提前谢谢

您可以在管理数据库上使用运行命令方法:

MongoDatabase database = client.getDatabase("admin");    
Document document1 = database.runCommand(new Document("currentOp", 1)
        .append("active", true));
Document document2 = database.runCommand(new Document("currentOp", 1)
        .append("active", false));
Document document3 = database.runCommand(new Document("currentOp", 1)
        .append("active", true)
        .append("secs_running", new Document("$gt", 3)));

谢谢你的快速回复。我试过了你的建议,但是现在上面的旗帜似乎没有得到尊重。例如,当我说try to say active为false并且运行超过3秒时,它仍然返回当前运行的currentOp。查询的详细信息是--“active”:true,“opid”:15144,“secs_running”:0,“microsecs_running”:27,“op”:“command”,“ns”:“admin.$cmd”,“query”:{“currentOp”:{“active”:false,“secs_running”:{“$gt”:3}我明白了,command
db.runCommand({currentOp:{active:false})
在mongo shell上甚至不起作用。要调查这个问题,我发现,我们需要使用以下命令:
db.runCommand({“currentOp”:1,“active”:true,“secs_running”){“$gt”:3}}})
。请尝试更新的答案,它对我有效。
MongoDatabase database = client.getDatabase("admin");    
Document document1 = database.runCommand(new Document("currentOp", 1)
        .append("active", true));
Document document2 = database.runCommand(new Document("currentOp", 1)
        .append("active", false));
Document document3 = database.runCommand(new Document("currentOp", 1)
        .append("active", true)
        .append("secs_running", new Document("$gt", 3)));