2014-11-10 9 views
7

ci presumo sia la struttura del documento come di seguito:
{_id:"session-01", status:"free"}
TrovaAndModify blocca efficacemente il documento per evitare conflitti di lettura?

e ci sono 2 operazioni simultanee che eseguono l'operazione findAndModify di seguito: db.collection.findAndModify({query:{status:"free"}, update:{status:"occupied"}, new:true})

Quello che voglio ottenere è una sola operazione può ottenere il " liberare "uno" ed eseguire il blocco su di esso, quindi l'altra operazione deve essere annullata. È questo che fa findAndModify?

risposta

6

In base ai documenti ufficiali, MongoDB fornisce aggiornamenti e resi isolati.
Ecco il link doc ufficiale mongoDB: Why findAndModify is Atomic.
Ecco un esempio superbamente illustrata di come findAndModify lavora in MongoDB: How findAndModify works

Nota - Io di solito non piace la pubblicazione di link, ma non volevo screditare i proprietari dei contenuti.

+1

La spiegazione del secondo collegamento mi dà più sicurezza. Grazie per la risposta: D –

Problemi correlati