2014-08-29 2 views
0

java 드라이버를 통해 단위 테스트를위한 mongodb 컬렉션에 대한 정리 루틴을 작성하는 중입니다. "원시"matlab 드라이버를 사용해 보았습니다. 음, 희소).Matlab은 Java 드라이버를 통해 MongoDB 컬렉션의 모든 문서를 삭제합니다.

나는 (나는 적어도 내가 할 수 있다고 생각하는) 연결을 얻을 수 있지만 DBCollection 객체에서 remove 메소드를 호출 할 때 막혀있다.

나는 다음과 같은 코드를 실행 해요 : 내가 오류를 얻을 마지막 줄에

javaaddpath(pathToJarFile) 

import com.mongodb.*; 

mongoClient = MongoClient(mHost); 
mongoConn = mongoClient.getDB(dbName); 
auth = mongoConn.authenticate(user,password); 

events = mongoConn.getCollection('events'); 

events.remove(); 

있는 방법 '클래스 발견 서명이 일치하는'제거 'com.mongodb.DBCollectionImpl '.

저는 DBMolumn 메서드가 DBCollection 클래스에 존재한다는 것을 알고 있기 때문에, 저는 현재 손실이 조금 있습니다.

도움을 주시면 감사하겠습니다. 내가 그것을 OOP에 올 때 본질적으로 문맹 해요 참고 : -S


편집 :

나는 또한 시도 있습니다 동일한 오류 메시지가 발생

events.remove({}); 

.

+0

:

실무 코드는 다음과 같습니다? – Seelenvirtuose

+0

모든 문서는 이벤트에 포함되어 있으므로 MongoDB 설명서에 따라'remove'에 대한 입력 인수없이'remove' 메소드를 사용합니다. – sobek

+0

어떤 문서를 참조하십니까? 적어도 하나의 인수를 취하는'DBCollection' 메소드에 대해서만'remove' 메소드를 볼 수 있습니다. – Seelenvirtuose

답변

0

{}은 MATLAB에서 올바르게 전달되지 않으므로 빈 문서를 만들고 remove으로 전달하는 것이 실제로 효과가있는 것 같습니다.

javaaddpath(pathToJarFile) 

import com.mongodb.*; 

mongoClient = MongoClient(mHost); 
mongoConn = mongoClient.getDB(dbName); 
auth = mongoConn.authenticate(user,password); 

events = mongoConn.getCollection('events'); 

empty = BasicDBObject(); 
events.remove(empty); 
_What_ 컬렉션 "이벤트"에서 제거해야한다
1

API documentation of DBCollection.remove에 따르면 단순히 삭제 기준을 지정하는 DBObject을 제공해야합니다. 또한 빈 문서를 전달하여 컬렉션의 모든 문서를 삭제합니다. 적어도 당신은 논쟁을해야합니다.

remove all documents from a collection에 대한 설명서에 따르면 빈 문서를 나타내는 인수 {}을 해당 메서드에 전달하기 만하면됩니다. 그래서 당신은 코멘트에있는 당신의 질문에 대답하기

events.remove({}); 

를 호출해야합니다 : 인수는 제거 기준을 설명하는 DBObject해야합니다. A 커서은 그런 문서가 아닙니다.

+0

불행히도'events.remove ({});'는 작동하지 않습니다. 내 유일한 추측은 지금은 Matlab에 자바 드라이버를 가져오고 있기 때문에 Matlab의'{}'는 빈 셀 배열이므로 인수는 드라이버에 전달되지 않습니다. 나는 빈 문서 객체를 생성하고 그것을'remove'에 전달하려고 노력할 것입니다. 아마 도움이 될 것입니다. – sobek

+0

그럼 미안 해요. 행운을 빕니다. – Seelenvirtuose

+0

그래, 도와 줘서 고마워! – sobek

관련 문제