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