Java 코드 내에서 sharding 후 청크 목록을 가져와야합니다. 내 코드는 간단하고 다음과 같습니다 : 우리가 db.js의 코드로 보면 라인에, 정말,Mongodb : db.printShardingStatus()/sh.status() Java (및 JavaScript) 호출
Exception in thread "main" com.mongodb.CommandResult$CommandFailure: command failed [$eval]: { "serverUsed" : "localhost/127.0.0.1:27017" , "errno" : -3.0 , "errmsg" : "invoke failed: JS Error: ReferenceError: printShardingStatus is not defined src/mongo/shell/db.js:891" , "ok" : 0.0}
at com.mongodb.CommandResult.getException(CommandResult.java:88)
at com.mongodb.CommandResult.throwOnError(CommandResult.java:134)
at com.mongodb.DB.eval(DB.java:340)
at org.sm.mongodb.MongoTest.main(MongoTest.java:35)
그리고 :
Mongo m = new Mongo("localhost" , 27017);
DB db = m.getDB("admin");
Object cr = db.eval("db.printShardingStatus()", 1);
평가의()에 대한 호출이 오류를 반환
891 파일 내에서 정의되지 않은 printShardingStatus() 메서드 호출이 있습니다. 나는 몽고 명령 행에서 다음 명령을 실행할 때// TODO: move the actual commadn here
언급 중요한, 모든 것이 제대로 작동 : utils_sh.js 파일 sh.status() 메소드의 내부에서도 의견이 있습니다!
내 질문은 : 자바 코드 내에서 전체 샤딩 상태를 얻기의 다른 가능성이
- 있습니까? (예 : DB.command() 메서드 사용)
- 그렇지 않은 경우, 다른 제안 사항으로 내 문제를 피할 수 있습니까?
딱! config DB에서 실행되는 DB.getCollection() 메소드와 함께 작동합니다. 방법을 보여 주셔서 감사합니다! –