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

MongoDB:Calling Count() vs tracking counts i en samling

Hvis du har mange data, så ville jeg holde fast i den samme tilgang og øge en samlet tæller, hver gang der tilføjes en ny besked til en bruger, ved at bruge en samling som denne:

tæller

{
    userid: 123,
    messages: 10
}

Desværre (eller heldigvis?) er der ingen udløsere i MongoDB, så du vil øge tælleren fra din applikationslogik:

db.counts.update( { userid: 123 }, { $inc: { messages: 1 } } )

Dette vil give dig den bedste ydeevne, og du ville sandsynligvis også sætte et indeks på userid felt til hurtige opslag:

db.counts.ensureIndex( { userid: 1 } )


  1. Node.js - Mongoose - Opdater indlejret array med alle værdier i req.body

  2. hvordan løser man denne transaktionsfejl i mlab? [MongoError:Transaktionsnumre er ... understøtter låsning på dokumentniveau]

  3. nginx uwsgi websockets 502 Bad Gateway upstream lukkede for tidligt forbindelse under læsning af svarheader fra upstream

  4. Windows MongoDB - Installeret kompas, men kan ikke finde kompas i systemet