sql >> Databáze >  >> NoSQL >> MongoDB

Mongodb sečte velikost polí pole

Zahrňte $group fáze kanálu operátora po $project postupujte následovně:

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

Tím seskupí všechny vstupní dokumenty z předchozího $project fázi a použije akumulátorový výraz $sum na fooos pole ve skupině, abyste získali součet (použijte váš poslední příklad):

To lze také provést vynecháním $project potrubí jako:

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

Výstup

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


  1. elasticsearch v.s. MongoDB pro aplikaci filtrování

  2. Redis C# - Použití hodnoty Incr v transakci

  3. Jak převést řetězec na objectId v LocalField pro $lookup Mongodb

  4. Redis, vypršení platnosti relace a zpětné vyhledávání