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

Hentning af længden af ​​en liste i MongoDB

Nu kunne jeg tænke i to tilgange:

1) Brug af aggregeringsramme:

db.log.aggregate([ { $unwind : "$entries" }, { $group : { _id : "$_id", entries : {$sum:1}  } }  ]);

2) Eller du kan tilføje et felt til dokumentet, der indeholder antallet af posteringer. Så hver gang du skubber en ny værdi til entries array, skal du øge tælleren. Opdateringen bliver sådan her:

db.log.update({ _id : 123 }, { $push : { entries : 'value' }, $inc : { entriesCount : 1 } })

Det er klart, at du har en afvejning her:aggregeringsrammen er for dyr til denne simple operation. Men hvis du tilføjer et felt til dokumentet, bør hver opdatering øge tælleren.

IMHO, tælleren ser mere fornuftig ud, selvom den ser ud til at være en løsning.



  1. Hvordan serialiserer man en række tilpassede objekter ved at bruge mongo C#-driveren for at gemme den?

  2. Indsættelse af Date() i Mongodb gennem mongo shell

  3. Gruppe tæller 2 element objekt array mongodb

  4. Mongoose Dato Filter