Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Actualizaciones de desarrolladores

En esta guía, puedes aprender cómo especificar actualizaciones utilizando desarrolladores en el driver de Java.

La Updates El constructor proporciona métodos asistentes para simplificar las siguientes tareas:

  • Actualizaciones de campo: Actualización o eliminación del valor de un campo en particular

  • Actualizaciones de arreglo: actualizando valores en un campo valorizado por un arreglo

  • Combinando operadores de actualizar múltiples: realizar varias actualizaciones a la vez, como establecer o cambiar más de un campo

Algunos métodos que esperan documentos actualizados son:

  • updateOne()

  • updateMany()

  • bulkWrite()

La Updates clase proporciona métodos de fábrica estáticos para todos los operadores de actualización de MongoDB. Cada método devuelve una instancia del tipo BSON, que se puede pasar a cualquier método que espere un argumento de actualización.

Tip

Para abreviar, puede optar por importar los métodos de las Actualizaciones clase estáticamente:

import static com.mongodb.client.model.Updates.*;

Los siguientes ejemplos asumen esta importación estática.

Los ejemplos de esta guía utilizan el siguiente documento:

{
"_id": 1,
"color": "red",
"qty": 5,
"vendor": [ "A", "D", "M" ],
"lastModified": { "$date": "2021-03-05T05:00:00Z" }
}

Utiliza el método set() para asignar el valor de un campo en una operación de actualización.

El siguiente ejemplo establece el valor del campo qty en "11":

Bson filter = eq("_id", 1);
Bson update = set("qty", 11);
collection.updateOne(filter, update);

El ejemplo precedente actualiza el documento original al siguiente estado:

{
"_id": 1,
"color": "red",
"qty": 11,
"vendor": [ "A", "D", "M" ],
"lastModified": { "$date": "2021-03-05T05:00:00Z" }
}

El siguiente ejemplo agrega dos nuevos campos al documento original:

Bson filter = eq("_id", 1);
Bson update = combine(set("width", 6.5), set("height", 10));
collection.updateOne(filter, update);

El ejemplo precedente actualiza el documento original al siguiente estado:

{
"_id": 1,
"color": "red",
"qty": 5,
"vendor": [ "A", "D", "M" ],
"lastModified": { "$date": "2021-03-05T05:00:00Z" },
"width": 6.5,
"height": 10,
}

Utiliza el método unset() para borrar el valor de un campo en una operación de actualización.

El siguiente ejemplo elimina el campo qty:

Bson filter = eq("_id", 1);
Bson update = unset("qty");
collection.updateOne(filter, update);

El ejemplo precedente actualiza el documento original al siguiente estado:

{
"_id": 1,
"color": "red",
"vendor": [ "A", "D", "M" ],
"lastModified": { "$date": "2021-03-05T05:00:00Z" }
}

Utiliza el método setOnInsert() para asignar el valor de un campo en una operación de actualización durante la inserción de un documento.

El siguiente ejemplo establece el valor del campo qty en "5" si una actualización condicional dio como resultado la inserción de un documento:

Bson filter = eq("_id", 1);
Bson update = setOnInsert("qty", 7);
collection.updateOne(filter, update, new UpdateOptions().upsert(true));

El ejemplo precedente actualiza el documento original al siguiente estado:

{
"_id": 1,
"color": "red",
"qty": 5,
"vendor": [ "A", "D", "M" ],
"lastModified": { "$date": "2021-03-05T05:00:00Z" }
}

Nota

Si el documento no se inserta, no se producirá ningún cambio.

Utilice el método inc() para incrementar el valor de un campo numérico en una operación de actualización.

El siguiente ejemplo incrementa el valor del campo qty en "3":

Bson filter = eq("_id", 1);
Bson update = inc("qty", 3);
collection.updateOne(filter, update);

El ejemplo precedente actualiza el documento original al siguiente estado:

{
"_id": 1,
"color": "red",
"qty": 8,
"vendor": [ "A", "D", "M" ],
"lastModified": { "$date": "2021-03-05T05:00:00Z" }
}

Utiliza el método mul() para multiplicar el valor de un campo numérico en una operación de actualización.

En el siguiente ejemplo se multiplica el valor del campo qty por "2":

Bson filter = eq("_id", 1);
Bson update = mul("qty", 2);
collection.updateOne(filter, update);

El ejemplo precedente actualiza el documento original al siguiente estado:

{
"_id": 1,
"color": "red",
"qty": 10,
"vendor": [ "A", "D", "M" ],
"lastModified": { "$date": "2021-03-05T05:00:00Z" }
}

Utiliza el método rename() para cambiar el valor de un campo en una operación de actualización.

El siguiente ejemplo cambia el nombre del campo qty a \"quantity\":

Bson filter = eq("_id", 1);
Bson update = rename("qty", "quantity");
collection.updateOne(filter, update);

El ejemplo precedente actualiza el documento original al siguiente estado:

{
"_id": 1,
"color": "red",
"vendor": [ "A", "D", "M" ],
"lastModified": { "$date": "2021-03-05T05:00:00Z" },
"quantity": 5
}

Utiliza el método min() para actualizar el valor de un campo con el número menor de los dos especificados en una operación de actualización.

Bson filter = eq("_id", 1);
Bson update = min("qty", 2);
collection.updateOne(filter, update);

El ejemplo precedente actualiza el documento original al siguiente estado:

{
"_id": 1,
"color": "red",
"qty": 2,
"vendor": [ "A", "D", "M" ],
"lastModified": { "$date": "2021-03-05T05:00:00Z" }
}

Utilice el método max() para actualizar el valor de un campo con el número mayor de los dos especificados en una operación de actualización.

El siguiente ejemplo establece el valor del campo qty al máximo de su valor actual y "8":

Bson filter = eq("_id", 1);
Bson update = max("qty", 8);
collection.updateOne(filter, update);

El ejemplo precedente actualiza el documento original al siguiente estado:

{
"_id": 1,
"color": "red",
"qty": 8,
"vendor": [ "A", "D", "M" ],
"lastModified": { "$date": "2021-03-05T05:00:00Z" }
}

Utilice el método currentDate() para asignar el valor de un campo en una operación de actualización a la fecha actual como una fecha BSON.

El siguiente ejemplo establece el valor del campo lastModified en la fecha actual como una fecha BSON:

Bson filter = eq("_id", 1);
Bson update = currentDate("lastModified");
collection.updateOne(filter, update);

El ejemplo precedente actualiza el documento original al siguiente estado:

{
"_id": 1,
"color": "red",
"qty": 5,
"vendor": [ "A", "D", "M" ],
"lastModified": { "$date": "2021-03-22T21:01:20.027Z" }
}

Utiliza el método currentTimestamp() para asignar el valor de un campo en una operación de actualización a la fecha actual, como un timestamp.

El siguiente ejemplo establece el valor del campo lastModified a la fecha actual como una marca de tiempo BSON:

Bson filter = eq("_id", 1);
Bson update = currentTimestamp("lastModified");
collection.updateOne(filter, update);

El ejemplo precedente actualiza el documento original al siguiente estado:

{
"_id": 1,
"color": "red",
"qty": 5,
"vendor": [ "A", "D", "M" ],
"lastModified": { "$timestamp": { "t": 1616446880, "i": 5 } }
}

Utilice los métodos bitwiseOr(), bitwiseAnd() y bitwiseXor() para realizar una actualización bit a bit del valor entero de un campo en una operación de actualización.

El siguiente ejemplo realiza un AND bit a bit entre el número «10» y el valor entero del campo qty:

Bson filter = eq("_id", 1);
Bson update = bitwiseOr("qty", 10);
collection.updateOne(filter, update);

La operación a nivel de bits da como resultado 15:

0101
1010
----
1111

El ejemplo precedente actualiza el documento original al siguiente estado:

{
"_id": 1,
"color": "red",
"qty": 15,
"vendor": [ "A", "D", "M" ],
"lastModified": { "$date": "2021-03-05T05:00:00Z" }
}

Utilice el método addToSet() para agregar un valor a una matriz si el valor aún no está presente en una operación de actualización.

El siguiente ejemplo añade el valor "C" al valor de arreglo del campo vendor:

Bson filter = eq("_id", 1);
Bson update = addToSet("vendor", "C");
collection.updateOne(filter, update);

El ejemplo precedente actualiza el documento original al siguiente estado:

{
"_id": 1,
"color": "red",
"qty": 5,
"vendor": [ "A", "D", "M", "C" ],
"lastModified": { "$date": "2021-03-05T05:00:00Z" }
}

Utiliza el método popFirst() para remover el primer elemento de un arreglo y el método popLast() para remover el último elemento de un arreglo en una operación de actualización.

El siguiente ejemplo extrae el primer elemento del valor de la matriz del campo vendor:

Bson filter = eq("_id", 1);
Bson update = popFirst("vendor");
collection.updateOne(filter, update);

El ejemplo precedente actualiza el documento original al siguiente estado:

{
"_id": 1,
"color": "red",
"qty": 5,
"vendor": [ "D", "M" ],
"lastModified": { "$date": "2021-03-05T05:00:00Z" }
}

Utilice el método pullAll() para eliminar todas las instancias de valores de una matriz existente en una operación de actualización.

El siguiente ejemplo elimina el proveedor "A" y "M" de la matriz vendor:

Bson filter = eq("_id", 1);
Bson update = pullAll("vendor", Arrays.asList("A", "M"));
collection.updateOne(filter, update);

El ejemplo precedente actualiza el documento original al siguiente estado:

{
"_id": 1,
"color": "red",
"qty": 5,
"vendor": [ "D" ],
"lastModified": { "$date": "2021-03-05T05:00:00Z" }
}

Utilice el método pull() para remover todas las instancias de un valor de un arreglo existente en una operación de actualización.

El siguiente ejemplo elimina el valor "D" del arreglo vendor:

Bson filter = eq("_id", 1);
Bson update = pull("vendor", "D");
collection.updateOne(filter, update);

El ejemplo precedente actualiza el documento original al siguiente estado:

{
"_id": 1,
"color": "red",
"qty": 5,
"vendor": [ "A", "M" ],
"lastModified": { "$date": "2021-03-05T05:00:00Z" }
}

Utilice el método push() para agregar un valor a un arreglo en una operación de actualización.

Los siguientes ejemplos agregan "C" al arreglo vendor:

Bson filter = eq("_id", 1);
Bson update = push("vendor", "C");
collection.updateOne(filter, update);

El ejemplo precedente actualiza el documento original al siguiente estado:

{
"_id": 1,
"color": "red",
"qty": 5,
"vendor": [ "A", "D", "M", "C" ],
"lastModified": { "$date": "2021-03-05T05:00:00Z" }
}

Una aplicación puede actualizar múltiples campos de un solo documento combinando dos o más de los operadores de actualización descritos en las secciones anteriores.

El siguiente ejemplo incrementa el valor del campo qty por “6”, establece el valor del campo color en “púrpura” y empuja “R” al campo vendor:

Bson filter = eq("_id", 1);
Bson update = combine(set("color", "purple"), inc("qty", 6), push("vendor", "R"));
collection.updateOne(filter, update);

El ejemplo precedente actualiza el documento original al siguiente estado:

{
"_id": 1,
"color": "purple",
"qty": 11,
"vendor": [ "A", "D", "M", "R" ],
"lastModified": { "$date": "2021-03-05T05:00:00Z" }
}

Volver

Sort

En esta página