MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongoose, MongoDB:Wie speichere ich ein () Dokument nach einem Push ()?

Ich denke, es hängt davon ab, wie häufig Kommentare zu Ihrem Beitrag hinzugefügt werden

Wenn es sehr häufig vorkommt, möchten Sie vielleicht die letzte Kommentaranzahl erhalten, die in Ihrem gespeicherten Rückruf wie folgt angezeigt wird:

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

Denken Sie daran, dass push() in Mongoose atomar ist. Mit anderen Worten, es verwendet $push unter der Haube und nicht $set (im Gegensatz zu nonAtomicPush ). ). Theoretisch können also beliebig viele andere Pushes/Speicherungen von Kommentaren gleichzeitig erfolgen, was bedeutet, dass comments.length in Ihrem gegebenen Beispiel nicht unbedingt n+1 ist

Wenn Sie nicht viele Kommentare erwarten, sollte Ihr Beispiel ausreichen. Es kann von Zeit zu Zeit weniger genau sein. Der Vorteil ist, dass es etwas schneller sein wird, da die Zählung synchron ist