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

Kør kortreduktion for alle nøgler i samlinger - mongodb

At bruge et kort/reducere til den simple opgave er lidt som at bruge en (forholdsvis langsom) forhammer til at knække en nød. aggregeringsramme blev dybest set opfundet til denne form for simpel aggregering (og kan gøre meget mere for dig!):

db.order.aggregate([
    { "$group":{ "_id":"$customer", "orders":{ "$sum": 1 }}},
    { "$out": "order_total"}
])

Afhængigt af din use case kan du endda udelade $out iscenesætte og forbruge resultaterne direkte.

> db.orders.aggregate([{ "$group":{ "_id":"$customer", "orders":{ "$sum": 1 }}}])
{ "_id" : "b", "orders" : 2 }
{ "_id" : "a", "orders" : 3 }

Bemærk, at med meget store samlinger er dette højst sandsynligt ikke egnet, da det tager et stykke tid (men det bør stadig være hurtigere end en kort-/reducer-operation).

For at finde antallet af ordrer fra en enkelt kunde kan du bruge en simpel forespørgsel og bruge cursor.count() metode:

> db.orders.find({ "customer": "a" }).count()
3



  1. Hvordan kan jeg gennemse/se de værdier, der er gemt i Redis

  2. Sådan finder du en understreng i et felt i Mongodb

  3. MongoError:getaddriinfo ENOTFOUND undefined undefined:27017

  4. Django sessioner