MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como ler/escrever um documento em execução paralela com mongoDB/mongoose


sim, você precisa de um melhor travamento no houseModel, para indicar que um addItemis está em andamento.

O problema é que várias solicitações podem chamar findById e ver o samehouse.items.length, então cada uma determina com base nesse snapshot (desatualizado) que não há problema em adicionar mais um item. O limite de atomicidade do nodejs é o callback; entre uma chamada assíncrona e seu retorno de chamada, outras solicitações podem ser executadas.

Uma solução fácil é rastrear não apenas o número de itens na casa, mas também o número de itens adicionais pretendidos. Ao entrar em addItem, aumente a contagem "quero adicionar mais" e teste isso.