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

Tæl felter i en MongoDB-samling

Gentag over hele samlingen, og find hele antallet af felter, der er

Nu kan du bruge aggregeringsoperatoren $objectToArray (SERVER-23310) til at omdanne nøgler til værdier og tælle dem. Denne operatør er tilgængelig i MongoDB v3.4.4+

For eksempel:

db.collection.aggregate([
         {"$project":{"numFields":{"$size":{"$objectToArray":"$$ROOT"}}}}, 
         {"$group":{"_id":null, "fields":{"$sum":"$numFields"}, "docs":{"$sum":1}}}, 
         {"$project":{"total":{"$subtract":["$fields", "$docs"]}, _id:0}}
])

Første fase $project er at omdanne alle nøgler til array for at tælle felter. Andet trin $group er at summere antallet af nøgler/felter i samlingen, også antallet af behandlede dokumenter. Tredje fase $project trækker det samlede antal felter fra med det samlede antal dokumenter (da du ikke vil tælle for _id ).

Du kan nemt tilføje $avg for at tælle for gennemsnittet på den sidste fase.



  1. Hvordan benchmarker man MongoDB med YCSB?

  2. Hvordan håndterer ConnectionMultiplexer afbrydelser?

  3. Sorter indlejret række af objekter

  4. Find dokument med matrix, der indeholder en bestemt værdi