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 .