Аз използвам 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
директория.