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

Come leggere/scrivere un documento in esecuzione parallela con mongoDB/mongoose

si, è necessario un migliore lock sull'houseModel, per indicare che è in corso un addItems.

Il problema è che più richieste possono chiamare findById e vedere samehouse.items.length, quindi ciascuna determina in base a quell'istantanea (obsoleta) che è possibile aggiungere un altro elemento. Il limite dell'atomicità di nodejs è il callback; tra una chiamata asincrona e la relativa richiamata, possono essere eseguite altre richieste.

Una soluzione semplice consiste nel tenere traccia non solo del numero di elementi nella casa, ma anche del numero di elementi aggiuntivi previsti. Entrando in addItem, aumenta il conteggio "vuoi aggiungere altro" e testalo.