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

mongodb php pobiera unikalne wartości pól

W standardowym DBMS SQL można to zrobić za pomocą następującego zapytania:

SELECT type, count(*) as ct FROM table GROUP BY type ORDER BY ct;

na mongodb można to zrobić za pomocą funkcji group, chociaż jest to nieco bardziej skomplikowane:

db.collection.group(
           {key: { "type":true},
            reduce: function(obj,prev) { prev.count += 1; },
            initial: { count: 0 }
            });

Tutaj proszę db o zwrócenie wartości dla klucza „typ” (stąd „prawda”), a dla każdej wartości podana funkcja Reduce będzie używana do agregowania znalezionych rekordów. Tutaj tylko aktualizuję licznik, ile razy pojawia się każdy rekord. Jeśli uruchomisz to zapytanie, otrzymasz coś takiego:

[
    {
        "type" : "report",
        "count" : 5
    },
    {
        "type" : "memo",
        "count" : 15
    }
    {
        "type" : "research",
        "count" : 3
    }

]

Zauważysz, że to nie jest uporządkowane; nawet dokumentacja mongodb mówi, że najłatwiejszym sposobem zamówienia jest zrobienie tego po stronie klienta.

Odpowiednia dokumentacja znajduje się tutaj .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kroki łączenia MongoDB i Solr za pomocą DataImportHandler

  2. NodeJS + MongoDB:insertOne() - pobierz wstawiony dokument z result.ops

  3. Grupuj według określonego elementu tablicy z platformą agregacji mongo

  4. MongoDB $toObjectId

  5. Czy mogę użyć '$set' na osadzonym dokumencie, gdy używam zmiennej jako nazwy pliku w MongoDB?