2016-06-19 4 views
0

나는 MongoDB를 Java Driver v3.2.2를 사용하고 있는데 나는 기존의 문서에 새로운 문자열 배열 필드를 추가하려면 다음 명령을 사용합니다Java에서 MongoDB 문서 업데이트 : 코딩 오류 또는 드라이버 버그?

org.bson.codecs :

myMongoCollection.updateOne(new Document("id", id), Updates.set("arrayField", Arrays.asList(new Document("strField", strValue)))); 

그것은 다음과 같은 예외가 생성 .configuration.CodecConfigurationException : java.util.Arrays $ ArrayList 클래스의 코덱을 찾을 수 없습니다.

코딩 오류가 있습니까? 아니면 드라이버 버그와 관련이 있습니까? here (link)?

드라이버 버그와 관련이있는 경우 최신 릴리스 버전 (3.3)을 쉽게 얻을 수 있다는 힌트가 있습니다 (예 : 어떻게 JAR 파일을 쉽게 만들 수 있습니까? GIT는 완전히 새로운 것입니다)?

많은 감사, mongodb-java-driver v3.2.2에서

답변

1

톰, 당신은 Document 대신 빌더 Updates.set의를 사용할 수 있습니다. 수정 마스터 지점에 간 경우도 Updating Documents

import static com.mongodb.client.model.Filters.eq; 

myMongoCollection.updateOne(eq("id", id), new Document("$set", new Document ("arrayField", Arrays.asList(new Document("strField", strValue))))); 

은 또는, 당신은 자식에서 항아리를 만들 수 참조 :

$ git clone https://github.com/mongodb/mongo-java-driver.git 
$ cd mongo-java-driver 
$ ./gradlew 

결과 항아리 build/libs 디렉토리에있을 것입니다.