sql >> Base de Datos >  >> NoSQL >> MongoDB

Caso de borde de actualización de integridad de MongoDB

Porque las actualizaciones de documentos individuales son atomic , independientemente del orden en que se ejecuten los dos comandos, el documento terminará como:

{amount : 9999, approved: true, ...}

Si el primer comando se ejecuta primero, el segundo comando lo anulará.

Si el segundo comando se ejecuta primero, entonces el primer comando no tiene efecto como approve ahora es true por lo que las condiciones de actualización no coincidirán.

Lo que estás haciendo (correctamente) es la bien establecida concurrencia optimista o "actualizar si es actual" enfoque para administrar el acceso concurrente.