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

Metody agregacji mongoidów na osadzonych dokumentach?

Tak, MapReduce zadziała. Możesz także użyć kursorów do przetworzenia wyniku zapytania. Na przykład:

min = 99999999;
max = -99999999;
sum = 0;
count = 0
db.School.find({}).forEach(function(s) {
    if (s.first.events.first.cost < min)
        min = s.first.events.first.cost;
    if (s.first.events.first.cost > max)
        max = s.first.events.first.cost;
    sum += s.first.events.first.cost;
    ++count;
});

Masz teraz minimum i maksimum i możesz obliczyć średnią i średnią z sumy i liczby.

Mongodb nie ma możliwości bezpośredniego obliczania funkcji agregujących w swoim języku zapytań. Właściwie to stwierdzenie nie jest całkowicie prawdziwe, ponieważ istnieje funkcja count() do zliczania wyników zwróconych przez zapytanie i funkcja group(). Ale funkcja grupy jest bardzo podobna do MapReduce i nie można jej używać w bazach danych podzielonych na fragmenty. Jeśli interesuje Cię funkcja grupowania, zobacz:http://www. mongodb.org/display/DOCS/Aggregation#Aggregation-Group




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Agregacja MongoDb:Jak mogę pogrupować macierz-1 na podstawie innej tablicy-2, gdy podano macierz-1 i macierz-2?

  2. node.js mongodb - collection.find().toArray(callback) - callback nie jest wywoływany

  3. Wskazówki dotyczące aktualizacji do najnowszej wersji MongoDB

  4. jak pobrać częściowe obiekty z tablicy obiektów w polu w mongodb

  5. Wyjątek Mongodb, MongoCursorException' z komunikatem 'Operator $ uczynił obiekt zbyt dużym Co to oznacza?