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

Mongoose, MongoDB:come salvare() documento dopo push()?

Penso che dipenda dalla frequenza con cui i commenti verranno aggiunti al tuo post

Se è molto frequente, potresti voler ottenere l'ultimo conteggio dei commenti, che sarebbe nella tua richiamata di salvataggio in questo modo:

myPost.comments.push({user: 42, text: 'blablabla'});
myPost.save(function (err, post) {
    newCount = post.comments.length
});

Ricorda che push() è atomico in Mongoose. In altre parole utilizza $push sotto il cofano e non $set (in contrasto con nonAtomicPush ). Quindi, in teoria, qualsiasi altro numero di push/salvataggi nei commenti può avvenire contemporaneamente, il che significa che nell'esempio fornito, comments.length non è necessariamente n+1

Se non ti aspetti molti commenti, il tuo esempio dovrebbe essere sufficiente. Di tanto in tanto potrebbe essere meno preciso. Il vantaggio è che sarà un po' più veloce poiché il recupero del conteggio sarà sincrono