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