pom mongoclient example ejemplo mongodb-java

mongodb java - mongoclient - Actualización de MongoDB utilizando el controlador Java 3



mongodb java ejemplo (3)

Puedes probar esto

coll.findOneAndReplace(doc1, doc2);

Estoy cambiando a la versión 3 del controlador Java de MongoDB. No puedo averiguar cómo realizar una actualización de un documento. Por ejemplo, quiero cambiar la "edad" de un usuario:

MongoDatabase db = mongoClient.getDatabase("exampledb"); MongoCollection<org.bson.Document> coll = db.getCollection("collusers"); Document doc1 = new Document("name", "frank").append("age", 55) .append("phone", "123-456-789"); Document doc2 = new Document("name", "frank").append("age", 33) .append("phone", "123-456-789"); coll.updateOne(doc1, doc2);

La salida es:

java.lang.IllegalArgumentException: Invalid BSON field name name

Alguna de idea de cómo arreglarlo ? ¡Gracias!


Utilizar:

coll.updateOne(eq("name", "frank"), new Document("$set", new Document("age", 33)));

para actualizar el primer documento encontrado. Para actualizaciones múltiples:

coll.updateMany(eq("name", "frank"), new Document("$set", new Document("age", 33)));

En este enlace, puede encontrar una referencia rápida al controlador Java 3 de MongoDB


en Mongodb Java driver 3.0, cuando actualiza un documento, puede llamar al método coll.replaceOne para reemplazar el documento, o llamar al método coll.updateOne / coll.updateMany para actualizar los documentos usando $ set / $ setOnInsert / etc operadores

En tu caso, puedes probar:

coll.updateOne(eq("name", "frank"), new Document("$set", new Document("age", 33))); coll.replaceOne(eq("name", "frank"), new Document("age", 33));