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
/ /
Eventos de cambios

replace Evento

replace

Un evento replace ocurre cuando una operación de actualización remueve un documento de una colección y lo reemplaza con un nuevo documento, como cuando el replaceOne se llama el método.

Campo
Tipo
Descripción

_id

Documento

Un objeto BSON que sirve como identificador para el evento de flujo de cambios. Este valor se utiliza como el resumeToken para el parámetro resumeAfter al reanudar un flujo de cambios. El objeto _id tiene la siguiente forma:

{
"_data" : <BinData|hex string>
}

El tipo _data depende de las versiones de MongoDB y, en algunos casos, de la compatibilidad de características entre versiones (compatibilidad de características entre versiones) al momento de la apertura o reanudación del flujo de cambios. Consulta Tokens de reanudación para obtener la lista completa de tipos _data.

Para obtener un ejemplo de reanudación de un flujo de cambios por resumeToken, consulta Reanudar un Change Stream.

clusterTime

Marca de tiempo

clusterTime es la marca de tiempo de la entrada de oplog asociada con el evento.

Debido a los límites de tamaño del registro de operaciones, lastransacciones multidocumento pueden crear varias entradas del registro de operaciones. En una transacción, los eventos de flujo de cambios almacenados en una entrada del registro de operaciones comparten el clusterTime mismo.

En clústeres fragmentados, los eventos con el mismo clusterTime no siempre están relacionados con la misma transacción. Algunos eventos no se relacionan en absoluto con una transacción.

Para identificar eventos para una sola transacción, puede utilizar la combinación de lsid y txnNumber en el documento de evento de flujo de cambios.

documentKey

Documento

Documento que contiene el valor _id del documento creado o modificado por la operación CRUD.

Para los conjuntos particionados, este campo también muestra la clave de partición completa del documento. El campo _id no se repite si ya es parte de la clave de partición.

fullDocument

Documento

El nuevo documento creado por la operación.

lsid

Documento

El identificador de la sesión asociada con la transacción.

Sólo está presente si la operación es parte de una transacción de múltiples documentos.

ns

Documento

El namespace (base de datos o colección) afectado por el evento.

ns.coll

string

El nombre de la colección donde ocurrió el evento.

ns.db

string

El nombre de la base de datos donde ocurrió el evento.

operationType

string

El tipo de operación que informa la notificación de cambio.

Devuelve un valor de replace para estos eventos de cambio.

txnNumber

Número largo

Junto con el lsid, un número que ayuda a identificar de forma única una transacción.

Sólo está presente si la operación es parte de una transacción de múltiples documentos.

El siguiente ejemplo ilustra un evento replace:

{
"_id": { <Resume Token> },
"operationType": "replace",
"clusterTime": <Timestamp>,
"ns": {
"db": "engineering",
"coll": "users"
},
"documentKey": {
"_id": ObjectId("599af247bb69cd89961c986d")
},
"fullDocument": {
"_id": ObjectId("599af247bb69cd89961c986d"),
"userName": "alice123",
"name": "Alice"
}
}

Una operación de replace utiliza el comando de actualización y consta de dos etapas:

  • Elimina el documento original con el documentKey y

  • Introduzca el nuevo documento utilizando el mismo documentKey

El fullDocument de un evento replace representa el documento después de la inserción del documento de reemplazo.

Volver

renombrar

En esta página