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

Policz pola w kolekcji MongoDB

Przeprowadź iterację po całej kolekcji i znajdź całą liczbę pól, które się tam znajdują

Teraz możesz użyć operatora agregacji $objectToArray (SERVER-23310), aby zamienić klucze w wartości i je policzyć. Ten operator jest dostępny w MongoDB v3.4.4+

Na przykład:

db.collection.aggregate([
         {"$project":{"numFields":{"$size":{"$objectToArray":"$$ROOT"}}}}, 
         {"$group":{"_id":null, "fields":{"$sum":"$numFields"}, "docs":{"$sum":1}}}, 
         {"$project":{"total":{"$subtract":["$fields", "$docs"]}, _id:0}}
])

Pierwszy etap $project jest zamiana wszystkich kluczy w tablicę do zliczania pól. Drugi etap $group polega na zsumowaniu liczby kluczy/pól w kolekcji, a także liczby przetworzonych dokumentów. Trzeci etap $project odejmuje całkowitą liczbę pól od całkowitej liczby dokumentów (ponieważ nie chcesz liczyć dla _id ).

Możesz łatwo dodać $avg, aby liczyć na średnią na ostatnim etapie.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bezpieczeństwo bazy danych 101:Zrozumienie uprawnień dostępu do bazy danych

  2. Zmniejszenie rozmiaru pliku bazy danych MongoDB

  3. Jaki jest właściwy sposób tworzenia synchronicznego zapytania MongoDB w Node.js?

  4. Dlaczego mongoose używa schematu, kiedy zaletą mongodb jest to, że jest pozbawiony schematu?

  5. W MongoDB szukaj w tablicy i sortuj według liczby dopasowań