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

Er flytning af dokumenter mellem samlinger en god måde at repræsentere tilstandsændringer i MongoDB?

Ja dette er ved design. MongoDB giver eksplicit ikke joinforbindelser eller transaktioner. Fjern + Gem er en form for transaktion.

Du har virkelig to muligheder med lav kompleksitet her, begge involverer findAndModify .

Mulighed #1:en enkelt samling

Baseret på din beskrivelse bygger du dybest set en kø med nogle ekstra funktioner. Hvis du udnytter en enkelt samling, bruger du findAndModify for at opdatere status for hvert element, mens det behandles.

Desværre betyder det, at du vil miste dette:...at den "indgående" samling kan holdes meget lille og hurtig på denne måde .

Mulighed #2:to samlinger

Den anden mulighed er grundlæggende en tofaset commit, der udnytter findAndModify .

Tag et kig på dokumenterne for denne her .

Når en vare er behandlet i A du indstiller et felt til at markere det til sletning. Du kopierer derefter elementet over til B . En gang kopieret til B du kan derefter fjerne elementet fra A .



  1. Ordre og begrænsning resulterer i en forespørgsel med et tilbagekald

  2. Node.js - Mongoose - Opdater indlejret array med alle værdier i req.body

  3. Hvordan forbinder man sikkert til Heroku Redis via kommandolinjen?

  4. Kort-Reducer for at kombinere data (MongoDb)