sql >> Base de Datos >  >> NoSQL >> MongoDB

Mongoose, MongoDB:¿Cómo guardar () el documento después de empujar ()?

Creo que depende de la frecuencia con la que se agreguen comentarios a tu publicación

Si es muy frecuente, es posible que desee obtener el último recuento de comentarios, que estaría en su devolución de llamada guardada de la siguiente manera:

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

Recuerda que push() es atómico en Mongoose. En otras palabras, usa $push debajo del capó y no $set (en contraste con nonAtomicPush ). Entonces, en teoría, cualquier número de otros envíos/guardados a los comentarios puede ocurrir al mismo tiempo, lo que significa que en su ejemplo dado, comments.length no es necesariamente n+1

Si no espera muchos comentarios, entonces su ejemplo debería ser suficiente. Puede ser menos preciso de vez en cuando. La ventaja es que será un poco más rápido ya que recuperar el conteo será sincrónico