Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Cambiar el valor de la clave de partición de un documento

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

Importante

Al actualizar el valor de la clave de partición

  • Debe 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.

Consulta también el comando/métodos de guardar específicos para conocer los requisitos adicionales específicos de la operación al ejecutar contra una colección particionada.

Para actualizar un valor de la clave de partición, utilice las siguientes operaciones:

Comando
Método

actualizar con multi: false

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

Para configurar un valor que no seanull, la actualización debe realizarse dentro de una transacción o como una escritura reintentable.

Si la modificación de la clave de partición da como resultado mover el documento a otra partición, no puedes especificar más de una modificación de la clave de partición en la operación por lotes; el tamaño del lote debe ser 1.

Si la modificación de la clave de partición no resulta en mover el documento a otra partición, puedes especificar varias modificaciones de la clave de partición en la operación en bloque.

Para establecerlo en un valor que no seanull, 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.

Considera una colección sales que está particionada en el campo location. La colección contiene un documento con el _id 12345 y el location "". Para actualizar el valor del campo de este documento, puedes ejecutar el siguiente comando:

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

Tip

Volver

Reshard a Collection

En esta página