Ich versuche, mehrere Felder in einem MongoDB-Dokument zu aktualisieren, aber nur ein Feld wird aktualisiert. Ich habe eine Sammlung Benutzer, in denen Benutzer eindeutig durch eine customer_user_id definiert sind. Ich möchte einen bestimmten Benutzer birth_year und Land Felder aktualisieren.Java + MongoDB: Aktualisieren mehrerer Felder in einem Dokument
Das ist, was ich tue:
// Define the search query:
DBCollection col = md.getDb().getCollection("user");
BasicDBObject searchQuery = new BasicDBObject("customer_user_id", customer_user_id);
// Define the update query:
BasicDBObject updateQuery = new BasicDBObject();
updateQuery.append("$set", new BasicDBObject().append("birth_year", birth_year);
updateQuery.append("$set", new BasicDBObject().append("country", country);
log.info("Update query: " + updateQuery);
col.update(searchQuery, updateQuery);
Leider nur das Land Feld aktualisiert wird, und der protokollierte updateQuery sieht wie folgt aus:
Update-Abfrage: { „$ set ": {" land ":" Österreich "}}
@wawek verwenden können, ich bin Ihr Ansatz und keines des Dokuments Feld versuchen wird nicht aktualisiert. Ich frage die Dokumente nach '_id' ab, die existieren und versuchen, eine Aktualisierung der spezifischen Felder durchzuführen, aber nichts passiert. Code: 'BasicDBObject searchQry = new BasicDBObject (" _ id ", epID); BasicDBObject updateFields = neu BasicDBObject(); updateFields.append ("isExpired", true); updateFields.append ("fetchStatus", FetchStatus.FETCHED.getID()); BasicDBObject setQuery = new BasicDBObject(); setQuery.append ("$ set", updateFields); UpdateResult updRes = dbC_Episodes.updateOne (searchQry, setQuery); ' –