/ / MongoDB Обновяване на документи в Java: кодираща грешка или грешка на драйвера? - java, mongodb, mongodb-query, mongodb-java

MongoDB Актуализация на документа в Java: грешка при кодиране или грешка в драйвера? - java, mongodb, mongodb-query, mongodb-java

Аз използвам MongoDB Java Driver v3.2.2 и използвам следната инструкция, за да добавя ново поле String array към съществуващ документ:

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

Той създава следното изключение:

org.bson.codecs.configuration.CodecConfigurationException: Не може да се намери кодек за клас java.util.Arrays $ ArrayList.

Правя грешка в кодирането или е свързана с драйвера на драйвера, както се предлага тук (връзка)?

Ако това е свързано с грешката на драйвера, каквото и да е намекМога лесно да получа най-новата, все още не-освободена версия (3.3), където е била фиксирана (т.е. как мога лесно да създам JAR файл, знаейки, че GIT е напълно нов за мен)?

Много благодаря, мъжко животно

Отговори:

1 за отговор № 1

в MongoDB-Java-шофьор v3.2.2, можете да използвате Document вместо Updates.set строител. Вижте също Актуализиране на документи

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)))));

Алтернативно, ако корекцията е влязла в главния клон, можете да създадете jar от git:

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

Полученият буркан ще бъде в build/libs директория.