sql >> Database >  >> NoSQL >> MongoDB

Mongodb groeperen en sorteren

Geïnspireerd door dit voorbeeld op de website van mongo.

GENEREER DUMMY GEGEVENS:

> db.stack.insert({a:1,b:1,c:1,active:1})
> db.stack.insert({a:1,b:1,c:2,active:0})
> db.stack.insert({a:1,b:2,c:3,active:1})
> db.stack.insert({a:1,b:2,c:2,active:0})
> db.stack.insert({a:2,b:1,c:3,active:1})
> db.stack.insert({a:2,b:1,c:10,active:1})
> db.stack.insert({a:2,b:2,c:10,active:0})
> db.stack.insert({a:2,b:2,c:5,active:1})

MONGO VRAAG:

> db.stack.aggregate(
... {$match:{active:1}},
... {$group:{_id:{a:"$a", b:"$b"}, csum:{$sum:"$c"}}},
... {$sort:{"_id.a":1}})

RESULTAAT:

{"result" : [
    {"_id" : {"a" : 1,"b" : 2},"csum" : 3},
    {"_id" : {"a" : 1,"b" : 1},"csum" : 1},
    {"_id" : {"a" : 2,"b" : 2},"csum" : 5},
    {"_id" : {"a" : 2,"b" : 1},"csum" : 13}
],"ok" : 1}

(OPMERKING:ik heb het shell-resultaat een beetje opnieuw geformatteerd, zodat het beter leesbaar is)



  1. Hoe maak je een geneste index in MongoDB?

  2. Rails + MongoMapper + EmbeddedDocument formulier hulp

  3. Wat is de beste manier om Redis te gebruiken in een Multi-threaded Rails-omgeving? (Puma / Sidekiq)

  4. Hoe verwijder je een veld volledig uit een MongoDB-document?