sql >> Database >  >> NoSQL >> MongoDB

Query op MongoDB Verwijder triggers

Je moet dat document ophalen met zijn ObjectID, wat niet mogelijk is op het huidige knooppunt dat je volgt op de oplog van omdat tegen de tijd dat u de wisbewerking van de oplog . hebt ontvangen , het document is weg. Wat volgens mij betekent dat je twee keuzes hebt:

  1. Zorg ervoor dat alle verwijderingen worden voorafgegaan door een update-bewerking waarmee u de documentvelden kunt zien die u nodig heeft voordat u ze verwijdert (dit maakt het verwijderen natuurlijk duurder)
  2. Voer een secundaire uit met een slave-vertraging en bevraag vervolgens dat knooppunt voor het document dat is verwijderd (direct of met behulp van tags ).

Voor nummer 2 is het probleem een ​​vertraging die lang genoeg is om te garanderen dat u het document kunt ophalen en kort genoeg om ervoor te zorgen dat u een up-to-date versie van het document krijgt. Tenzij u versiebeheer aan het document toevoegt als controle (die dan vergelijkbaar wordt met optie 1, zou u waarschijnlijk de versie willen bijwerken voordat u deze verwijdert), zou dit in wezen een optimistische oplossing moeten zijn, naar beste vermogen.




  1. mongoDB updateMany met upsert true en $in in where condition

  2. Verkeerde afstandsberekening met MongoDB

  3. Hoe afbeeldingen in mongoDB invoegen met java?

  4. mangoest verbinden met mongoDB-atlas en nodejs