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

Consulta sobre disparadores de eliminación de MongoDB

Debe obtener ese documento por su ID de objeto, lo que no será posible en el nodo actual en el que está siguiendo el oplog from porque para cuando haya recibido la operación de eliminación del oplog , el documento se ha ido. Lo que creo que significa que tienes dos opciones:

  1. Asegúrese de que todas las eliminaciones estén precedidas por una operación de actualización que le permita ver los campos del documento que necesita antes de la eliminación (esto hará que las eliminaciones sean más costosas, por supuesto)
  2. Ejecutar un secundario con un retraso esclavo y luego consulte en ese nodo el documento que se eliminó (ya sea directamente o usando etiquetas ).

Para el número 2, el problema es tener un retraso lo suficientemente largo como para garantizar que pueda recuperar el documento y lo suficientemente corto como para asegurarse de que está obteniendo una versión actualizada del documento. A menos que agregue la versión al documento como una verificación (que luego se vuelve similar a la opción 1, es probable que desee actualizar la versión antes de eliminarla), esta tendría que ser esencialmente una solución optimista y de mejores esfuerzos.