Update
Se utiliza para realizar actualización de documentos.
Métodos
Método
Base de Datos
Boolean update(T t)
MongoDB, Couchbase
Integer update(Document docSearch, Document docUpdate)
MongoDB
Integer updateMany(Document docSearch, Document docUpdate)
MongoDB
Reemplazar documentos
Método
Base de Datos
Descripción
Integer replaceOne(String key, String value, Document docUpdate)
MongoDB
Integer replaceOne(Bson search, Document docUpdate)
MongoDB
Boolean replace(JsonDocument doc)
Couchbase
Actualiza el documento si existe
Boolean upsert(JsonDocument doc)
Couchbase
Actualiza el documento, si no existe lo guarda.
Boolean upsert(JsonDocument doc,PersistTo persist, ReplicateTo replicate)
Couchabse
Indica donde se hará la persistencia y la replica.
Parámetros
Persistencias
Replicas
PersistTo.MASTER
ReplicateTo.ONE
PersistTo.ONE
ReplicateTo.TWO
PersistTo.TWO
ReplicateTo.THREE
PersistTo.THREE
ReplicateTo.FOUR
PersisTo.FOUR
Ejemplos MongoDB
Actualizar un documento Boolean update(T t)
planetas = planetasRepository.find("idplaneta","tierra");
planetas.setPlaneta("Tierra Solar");
//Busca por la llave primaria y actualiza el documento
if(planetasRepository.update(planetas)){
System.out.println("Actualizado");
}else{
System.out.println(" no actualizado");
}
Integer update(Document docSearch, Document docUpdate)
Actualiza el documento en base al documento de búsqueda de la siglas del país es pa, y reemplaza el logo.
planetasRepository.update(new Document("idplaneta","tierra"),new Document("$set", new
Document("planeta","Tierra Solar")));
Actualiza el logo y la población, en base a Documento de búsqueda usando append()
En este ejemplo asumimos que tenemos un atributo en el documento llamado población y mediante el método append podemos agregar otros atributos.
planetasRepository.update(new Document("idplaneta","tierra"),
new Document("$set", new Document("planeta","Tierra Solar")
.append("poblacion",86)));
Actualizar embebidos
En ese ejemplo asumimos que tenemos un Entity llamado Países y dentro de el documento embebido llamado Continentes.
@Getter
@Setter
@Entity(document = "pais")
public class Paises {
@Id
private String idpais;
private String pais;
private Integer poblacion;
@Embedded
private Continentes continentes;
}
@Getter
@Setter
public class Continentes {
@Id
private String idcontinente;
private String continente;
private String activo;
@Override
public String toString() {
return "Continentes{" + "idcontinente=" + idcontinente + ", continente=" + continente + ", planetas=" + planetas + '}';
}
}
Actualiza el nombre del país y la población en base a Documento de búsqueda por continente.idcontinente = 'am' y activo =si en un documento embebido.
paisesRepository.updateOne(new Document("continente.idcontinente","am").append(“activo”,”si),
new Document("$set", new Document("pais","Panama")
.append("poblacion",86)));
Actualizar múltiples documentos
Integer updateMany(Document docSearch, Document docUpdate)
Actualiza múltiples documentos.
Todos los documentos que tienen pais = Cuba se actualiza el Nombre y la Población
paisesRepository.updateMany(new Document("pais","Cuba"),
new Document("$set", new Document("pais","Cuba nueva")
.append("poblacion",186)));
Actualiza múltiples documentos. Todos los documentos que tienen pais = Cuba y Activo = si. Se actualiza el pais y la Población.
paisesRepository.updateMany(new Document("pais","Cuba").append(“activo”,”si”),
new Document("$set", new Document("pais","Cuba nueva")
.append("poblacion",186)));
ReplaceOne
Integer replaceOne(String key, String value, Document docUpdate)
Reemplaza un documento por otro con contenido diferente. El contenido anterior del documento era {idpais, pais,poblacion }, busca el documento especificado si lo encuentra país con idpais =cu y aplica el replaceOne() queda con la estructura nueva { logo,poblacion}, eliminando los campos anteriores. El id que genera MongoDB nunca se cambia.
paisesRepository.replaceOne("idpais","cu",
new Document("logo","http://www.myfoto.com")
.append("poblacion",186));
Integer replaceOne(Bson search, Document docUpdate)
Reemplaza un documento por otro con contenido diferente. El contenido anterior del documento era {idpais,pais,,poblacion }, busca por el Filter especificado si lo encuentra país con idpais = cu y al aplicar el replaceOne() queda con la estructura nueva {logo,poblacion}, eliminando los campos anteriores. El id que genera MongoDB nunca se cambia.
Bson filter =Filters.eq("idpais","cu");
paisesRepository.replaceOne(filter,
new Document("logo","http://www.myfoto.com")
.append("poblacion",186));
Ejemplos Couchbase
Actualiza el nombre del planeta
PlanetasFacade planetasFacade = new PlanetasFacade();
Planetas planetas = new Planetas();
planetas.setIdplaneta("saturno");
Optional<Planetas> p2 = planetasFacade.findById(planetas);
if (!p2.isPresent()) {
System.out.println("no hay planetas");
} else {
planetas = p2.get();
planetas.setPlaneta("Saturno actualizado");
if (planetasRepository.update(planetas)) {
System.out.println("se actualizo");
} else {
System.out.println("No se actualizo " + planetasFacade.getException());
}
}
Usar replace
Soporta JsonDocument para actualizar.
Boolean replace(JsonDocument doc)
PlanetasRepository planetasRepository= new PlanetasRepository();
JsonObject content = JsonObject.empty().put("idplaneta", "saturno")
.put("planeta", "Saturno replace");
JsonDocument doc = JsonDocument.create("saturno", content);
if (planetasRepository.replace(doc)) {
System.out.println("se reemplazo");
} else {
System.out.println("No se reemplazo " + planetasFacade.getException());
}

Ejemplo Boolean upsert(JsonDocument doc)
Soporta JsonDocument para actualizar.
PlanetasRepository planetasRepository = new PlanetasRepository();
JsonObject content = JsonObject.empty().put("idplaneta", "saturno")
.put("planeta", "Saturno replace");
JsonDocument doc = JsonDocument.create("saturno", content);
if (planetasRepository.upsert(doc)) {
System.out.println("se reemplazo");
} else {
System.out.println("No se reemplazo " + planetasFacade.getException());
}
Ejemplo
Usar replica y persitencia
Boolean upsert(JsonDocument doc,PersistTo persist, ReplicateTo replicate)
PlanetasRepository planetasRepository = new Planetasb();
JsonObject content = JsonObject.empty().put("idplaneta", "saturno")
.put("planeta", "Saturno ");
JsonDocument doc = JsonDocument.create("saturno", content);
if (planetasRepository.upsert(doc,PersistTo.MASTER,ReplicateTo.TWO)) {
System.out.println("se reemplazo");
} else {
System.out.println("No se reemplazo " + planetasFacade.getException());
}
Last updated
Was this helpful?