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

Mongoose, MongoDB:Hvordan gemmer man() dokument efter push()?

Jeg tror, ​​det afhænger af, hvor ofte kommentarer vil blive tilføjet til dit indlæg

Hvis det er meget hyppigt, vil du måske få det seneste antal kommentarer, som ville være i dit gemte tilbagekald som sådan:

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

Husk at push() er atomart i Mongoose. Med andre ord bruger den $push under motorhjelmen og ikke $set (i modsætning til nonAtomicPush ). Så i teorien kan et hvilket som helst antal andre push/gemmer til kommentarer ske samtidigt, hvilket betyder, at i dit givne eksempel er comments.length ikke nødvendigvis n+1

Hvis du ikke forventer en masse kommentarer, så burde dit eksempel være tilstrækkeligt. Det kan være mindre præcist fra tid til anden. Fordelen er, at det vil være lidt hurtigere, da hentningen vil være synkron




  1. Hvorfor tilføjer mit skema ikke standardværdier i mongoose-arrays?

  2. Redis Connection via socket på Node.js

  3. Mange til mange opdaterer i MongoDB uden transaktioner

  4. Læs data fra Redis til Flink