Docs Menu
Docs Home
/ /
Claves de partición

Cambiar el valor de la clave de fragmento de un documento

Puede actualizar el valor de la clave de fragmento de un documento a menos que el campo de clave de fragmento sea inmutable. _id campo.

Importante

Al actualizar el valor de la clave del fragmento

  • Debes estar en un mongos. No emitir la operación directamente en la partición.

  • Usted debe ejecutar ya sea en una transacción o como una escritura reintentable.

  • Debe incluir una condición de igualdad en la clave de partición completa en el filtro de query. Por ejemplo, considera una colección messages que utiliza { activityid: 1, userid : 1 } como clave de partición. Para actualizar el valor de la clave de partición de un documento, necesitas incluir activityid: <value>, userid: <value> en el filtro de query. Puedes incluir campos adicionales en la query según corresponda.

Consulte también los métodos/comandos de escritura específicos para conocer los requisitos adicionales específicos de la operación cuando se ejecuta contra una colección fragmentada.

Para actualizar un valor de clave de fragmento, utilice las siguientes operaciones:

Comando
Método

actualizar con multi: false

Para establecer un valor distinto denull, la actualización debe realizarse dentro de una transacción o como una escritura reintentable.

Para establecer unnull valor distinto de, la actualización debe realizarse dentro de una transacción o como una escritura reintentable.

Si la modificación de la clave de fragmento da como resultado mover el documento a otro fragmento, no puede especificar más de una modificación de clave de fragmento en la operación masiva; el tamaño del lote debe ser 1.

Si la modificación de la clave de fragmento no da como resultado el traslado del documento a otro fragmento, puede especificar varias modificaciones de clave de fragmento en la operación masiva.

Para establecer unnull valor distinto de, la operación debe realizarse dentro de una transacción o como una escritura reintentable.

Advertencia

Los documentos en colecciones particionadas pueden no tener los campos de clave de partición. Toma precauciones para evitar remover accidentalmente la clave de partición al cambiar el valor de clave de partición de un documento.

Considere una colección sales fragmentada en el campo location. La colección contiene un documento con _id 12345 y location "". Para actualizar el valor del campo de este documento, puede ejecutar el siguiente comando:

db.sales.updateOne(
{ _id: 12345, location: "" },
{ $set: { location: "New York"} }
)

Tip

Volver

Repartir una colección

En esta página