我有一个mongo数据库实例,我想让所有客户端连接到它。在我写的mongo shell中
db.currentOp(true)
我得到了所有客户及其财产。 如何在java中提取数据?
我试过这样的事情,但它没有工作:
mongoclient.getDB("local").command("currentOp")
它说没有这样的命令。
答案 0 :(得分:1)
似乎currentOp
是shell上的命令,但它不是所有驱动程序都支持的第一类 mongodb命令。您需要使用$cmd.sys.inprog
查询findOne()
集合。使用java
驱动程序,您可以执行以下操作(这正是currentOp
在引擎盖下调用的内容):
DB db = mongoclient.getDB("local");
DBObject currentOp = db.getCollection("$cmd.sys.inprog").findOne();
如果你在调用currentOp
时看到了幕后发生的事情,你会明白:
> db.currentOp
function ( arg ){
var q = {}
if ( arg ) {
if ( typeof( arg ) == "object" )
Object.extend( q , arg );
else if ( arg )
q["$all"] = true;
}
return this.$cmd.sys.inprog.findOne( q );
}
>