MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Binning i tabularyzacja (unikalne/liczba) w Mongo

Właśnie wypróbowałem nową platformę agregacji, która będzie dostępna w MongoDB w wersji 2.2 (wypuszczono 2.2.0-rc0), która powinna mieć wyższą wydajność niż map Reduce, ponieważ nie opiera się na Javascript.

dane wejściowe:

{ "_id" : 1, "age" : 22.34, "gender" : "f" }
{ "_id" : 2, "age" : 23.9, "gender" : "f" }
{ "_id" : 3, "age" : 27.4, "gender" : "f" }
{ "_id" : 4, "age" : 26.9, "gender" : "m" }
{ "_id" : 5, "age" : 26, "gender" : "m" }

polecenie agregacji dla płci:

db.collection.aggregate(
   {$project: {gender:1}},
   {$group: {
        _id: "$gender",
        count: {$sum: 1}
   }})

wynik:

{"result" : 
   [
     {"_id" : "m", "count" : 2},
     {"_id" : "f", "count" : 3}
   ],
   "ok" : 1
}

Aby umieścić wieki w koszach:

db.collection.aggregate(
   {$project: {
        ageLowerBound: {$subtract:["$age", {$mod:["$age",2]}]}}
   },
   {$group: {
       _id:"$ageLowerBound", 
       count:{$sum:1}
   }
})

wynik:

{"result" : 
    [
       {"_id" : 26, "count" : 3},
       {"_id" : 22, "count" : 2}
    ],
    "ok" : 1
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak uzyskać wiele dokumentów za pomocą tablicy identyfikatorów MongoDb?

  2. Nodejs UUIDv4 generujący stałą wartość identyfikatora, gdy jest używany w Mongoose

  3. Dlaczego kierunek indeksu ma znaczenie w MongoDB?

  4. Jak mogę jednocześnie zapisać wiele dokumentów w Mongoose/Node.js?

  5. Jak uzyskać wartość licznika za pomocą $lookup w mongodb za pomocą golanga?