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

Mongodb summer størrelsen af ​​matrixfelter

Inkluder $group operatørpipelinestadiet efter $project trin som følger:

db.profil.aggregate([
   { "$match":{ "typ": "Organisation" } },
   { "$project": {
         "fooos": { "$size": "$foos" }
   } },
   { "$group": {
       "_id": null,
       "count": {
           "$sum": "$fooos"
       }
   } }
])

Dette vil gruppere alle inputdokumenter fra det tidligere $project trin og anvender akkumulatorudtrykket $sum fooos felt i gruppen for at få totalen (ved at bruge dit sidste eksempel):

Dette kan også gøres uden om $project pipeline som:

db.profil.aggregate([
   { "$match": { "typ": "Organisation" } },
   { "$group": {
       "_id": null,
        "count": {
            "$sum": { "$size": "$foos" }
        }
    } }
])

Output

/* 0 */
{
    "result" : [ 
        {
            "_id" : null,
            "count" : 24
        }
    ],
    "ok" : 1
}


  1. Mongodb, find om en samling er tom, node.js

  2. Ret "indeksnavn skal være en streng", når du dropper flere indekser i MongoDB

  3. Hvordan benchmarker man MongoDB med YCSB?

  4. MongoDB:hvordan tæller man antallet af nøgler i et dokument?