sql >> Database >  >> NoSQL >> MongoDB

Mongoose, MongoDB:Hoe () document opslaan na push()?

Ik denk dat het afhangt van hoe vaak opmerkingen aan je bericht worden toegevoegd

Als het heel vaak voorkomt, wil je misschien het laatste aantal reacties ontvangen, wat als volgt in je opgeslagen callback staat:

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

Onthoud dat push() atomair is in Mongoose. Met andere woorden, het gebruikt $push onder de motorkap en niet $set (in tegenstelling tot nonAtomicPush ). Dus in theorie kan een willekeurig aantal andere push/saves voor opmerkingen gelijktijdig plaatsvinden, wat betekent dat in uw gegeven voorbeeld comments.length niet noodzakelijk n+1 is

Als je niet veel reacties verwacht, dan zou je voorbeeld moeten volstaan. Het kan van tijd tot tijd minder nauwkeurig zijn. Het voordeel is dat het een beetje sneller zal zijn omdat het ophalen van de telling synchroon zal zijn




  1. $match in $lookup-resultaat

  2. Benaderingen voor het opslaan van geospatiale gegevens in Redis

  3. Aantal exemplaren tellen in genest mongodb-document en groep behouden

  4. Mongoose + lodash breiden kopieerarray van object verkeerd uit