MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Interrogazione sui trigger di eliminazione di MongoDB

Devi recuperare quel documento dal suo ObjectID, cosa che non sarà possibile sul nodo corrente che stai seguendo oplog from perché dal momento in cui hai ricevuto l'operazione di cancellazione dal oplog , il documento è sparito. Il che credo significhi che hai due scelte:

  1. Assicurati che tutte le eliminazioni siano precedute da un'operazione di aggiornamento che ti permetta di vedere i campi del documento di cui hai bisogno prima dell'eliminazione (questo ovviamente renderà le eliminazioni più costose)
  2. Esegui un secondario con un ritardo slave e quindi interroga quel nodo per il documento che è stato eliminato (direttamente o utilizzando tag ).

Per il numero 2, il problema è avere un ritardo abbastanza lungo da garantire che tu possa recuperare il documento e abbastanza breve da assicurarti di ottenere una versione aggiornata del documento. A meno che tu non aggiunga il controllo delle versioni al documento come controllo (che sta diventando simile all'opzione 1, probabilmente vorrai aggiornare la versione prima di eliminarla), questa dovrebbe essere essenzialmente una soluzione ottimista e ottimale.