MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongoose, MongoDB :Comment sauvegarder le document () après push () ?

Je pense que cela dépend de la fréquence à laquelle des commentaires seront ajoutés à votre message

Si c'est très fréquent, vous voudrez peut-être obtenir le dernier nombre de commentaires, qui se trouvera dans votre rappel de sauvegarde comme ceci :

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

N'oubliez pas que push() est atomique dans Mongoose. En d'autres termes, il utilise $push sous le capot et non $set (contraste avec nonAtomicPush ). Donc, en théorie, un certain nombre d'autres poussées/sauvegardes vers les commentaires peuvent se produire simultanément, ce qui signifie que dans votre exemple donné, comments.length n'est pas nécessairement n+1

Si vous n'attendez pas beaucoup de commentaires, votre exemple devrait suffire. Il peut être moins précis de temps en temps. L'avantage est que ce sera un peu plus rapide car la récupération du décompte sera synchrone