Docs Menu
Docs Home
/ /
Sesiones

commitTransaction (comando de base de datos)

commitTransaction

Guarda los cambios realizados por las operaciones en el transacción multidocumento y finaliza la transacción.

Tip

En mongosh, este comando también se puede ejecutar a través de los métodos asistentes Session.commitTransaction() y Session.withTransaction().

Los métodos asistente son convenientes para usuarios de mongosh, pero es posible que no proporcionen el mismo nivel de información que los comandos de base de datos. En los casos en que no se necesite la conveniencia o se requieran campos de retorno adicionales, utiliza el comando de base de datos.

Para ejecutar, el comando debe ejecutarse contra commitTransaction la admin base de datos y ejecutarse dentro de Session() un.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Nota

Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulte Comandos no compatibles.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

El comando tiene la siguiente sintaxis:

db.adminCommand(
{
commitTransaction: 1,
txnNumber: <long>,
writeConcern: <document>,
autocommit: false,
comment: <any>
}
)

Al confirmar la transacción, la sesión utiliza el nivel de confirmación de escritura (write concern) especificado al inicio de la transacción. Ver Session.startTransaction().

Si se compromete utilizando la "w: 1" preocupación de escritura, su transacción puede revertirse si hay una conmutación por error.

Cuando se confirma una transacción, todos los cambios realizados en los datos se guardan y son visibles fuera de ella. Es decir, una transacción no confirmará algunos de sus cambios mientras revierte otros.

Hasta que se produzca la confirmación de una transacción, los cambios de datos realizados en la transacción no son visibles fuera de la transacción.

Sin embargo, cuando una transacción se guarda en múltiples fragmentos, no todas las operaciones de lectura externas necesitan esperar a que el resultado de la transacción confirmada sea visible en todos los fragmentos. Por ejemplo, si se confirma una transacción y la escritura 1 es visible en el fragmento A, pero la escritura 2 aún no es visible en el fragmento B, una lectura externa con el nivel de consistencia de lectura "local" puede leer los resultados de la escritura 1 sin ver la escritura 2.

Volver

abortarTransacción

En esta página