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

Uruchom redukcję mapy dla wszystkich kluczy w kolekcjach - mongodb

Używanie mapy/redukcji do tego prostego zadania jest trochę jak używanie (stosunkowo wolnego) młota kowalskiego do rozłupywania orzecha. struktura agregacji został wynaleziony do tego rodzaju prostej agregacji (i może zrobić dla Ciebie o wiele więcej!):

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

W zależności od przypadku użycia możesz nawet pominąć $out etap i bezpośrednio skonsumować wyniki.

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

Zwróć uwagę, że w przypadku bardzo dużych kolekcji najprawdopodobniej nie jest to odpowiednie, ponieważ zajmuje to trochę czasu (ale nadal powinno być szybsze niż operacja mapowania/zmniejszania).

Aby znaleźć liczbę zamówień jednego klienta, możesz użyć prostego zapytania i użyć kursor.count() metoda:

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB 3.0 Windows Service Start:Wystąpił błąd systemu 2

  2. mniam instalacja mongodb 3.2 kończy się niepowodzeniem

  3. Ładny wydruk w powłoce MongoDB domyślnie

  4. Zarządzanie kronikowaniem w MongoDB

  5. Dokumentacja obietnic Mongoose mówi, że zapytania nie są obietnicami?