如何使用java插件将客户端连接到我的mongodb?

时间:2014-05-25 11:38:04

标签: java mongodb

我有一个mongo数据库实例,我想让所有客户端连接到它。在我写的mongo shell中

db.currentOp(true) 

我得到了所有客户及其财产。 如何在java中提取数据?

我试过这样的事情,但它没有工作:

mongoclient.getDB("local").command("currentOp")

它说没有这样的命令。

1 个答案:

答案 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 );
}
>