2014-05-25 4 views
1

mongo db 인스턴스가 있는데 모든 클라이언트를 연결하려고합니다. 몽고 껍질에서 나는 쓸 수있다.클라이언트를 Java 플러그인으로 mongodb에 어떻게 연결할 수 있습니까?

db.currentOp(true) 

그리고 나는 모든 클라이언트와 속성을 얻는다. 어떻게 그 데이터를 java로 가져올 수 있습니까?

나는 이런 식으로 뭔가를 시도했지만 작동하지 않았다 :

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

이 같은 명령이없는 것을 말한다.

답변

1

currentOp이 셸의 명령 인 것으로 보이지만 모든 드라이버에서 mongodb 명령이 지원되는 첫 번째 클래스는 아닙니다. findOne()을 사용하여 $cmd.sys.inprog 컬렉션을 쿼리해야합니다. 당신이 currentOp를 호출 할 때 후드 아래에 무슨 일이 일어나고 있는지를 보면 당신은 아이디어를 얻을

DB db = mongoclient.getDB("local"); 
DBObject currentOp = db.getCollection("$cmd.sys.inprog").findOne(); 

:

> 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); 
} 
> 
java 드라이버를 사용하면 (후드 정확히 currentOp 호출되는) 다음을 수행 할 수 있습니다
+0

감사! 유창하게 달린다! – itaied

+0

현재 어떤 데이터베이스가 낡아 빠졌는지는 중요하지 않습니다. "foo"db에있을 수 있고 "bar"네임 스페이스 ("ns"특성)에있는 Ops를 얻을 수 있습니다. – runamok

관련 문제