2016-06-19 9 views
0

Ich bin mit MongoDB Java Driver v3.2.2 und ich verwende den folgenden Befehl ein neues String-Array-Feld in ein vorhandenes Dokument hinzuzufügen:MongoDB-Dokument-Update in Java: Codierungsfehler oder Treiberfehler?

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

Es werden folgende Ausnahme:

org.bson.codecs .configuration.CodecConfigurationException: kann einen Codec für die Klasse java.util.Arrays $ ArrayList nicht finden.

Mache ich einen Kodierungsfehler oder hängt es mit dem Treiberfehler zusammen, wie vorgeschlagen here (link)?

Wenn es sich um den Treiber-Fehler handelt, irgendein Hinweis, wie ich leicht die neuste noch nicht-veröffentlichte Version (3.3) bekommen kann, wo wurde behoben (dh. Wie kann ich einfach eine JAR-Datei erstellen, zu wissen, dass GIT ist für mich völlig neu)?

Vielen Dank, Tom

Antwort

1

In mongodb-java-driver v3.2.2, könnten Sie Document statt Updates.set Builder verwenden. Siehe auch 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))))); 

Alternativ kann, wenn das Update in den Master-Zweig gegangen ist, können Sie das Glas von git bauen konnte:

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

Das resultierende Glas in build/libs Verzeichnis sein würde.

Verwandte Themen