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

Empurre itens para o array mongo via mangusto


Assumindo, var friend = { firstName: 'Harry', lastName: 'Potter' };

Existem duas opções que você tem:

Atualize o modelo na memória e salve (javascript simples array.push):
person.friends.push(friend);
person.save(done);

ou
PersonModel.update(
    { _id: person._id }, 
    { $push: { friends: friend } },
    done
);

Eu sempre tento ir para a primeira opção quando possível, porque respeitará mais os benefícios que o mangusto lhe dá (ganchos, validação, etc.).

No entanto, se você estiver fazendo muitas gravações simultâneas, atingirá condições de corrida em que acabará com erros de versão desagradáveis ​​para impedi-lo de substituir o modelo inteiro a cada vez e perder o amigo anterior que você adicionou. Portanto, só vá para o primeiro quando for absolutamente necessário.