MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Бройте полета в колекция MongoDB

Прегледайте цялата колекция и намерете целия брой полета, които има

Сега можете да използвате оператора за агрегиране $objectToArray (SERVER-23310), за да превърнете ключовете в стойности и да ги преброите. Този оператор е наличен в MongoDB v3.4.4+

Например:

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

Първи етап $project е да превърнете всички ключове в масив за преброяване на полета. Втори етап $group е да се сумират броят на ключовете/полета в колекцията, също и броят на обработените документи. Трети етап $project изважда общия брой полета с общия брой документи (тъй като не искате да броите за _id ).

Можете лесно да добавите $avg, за да се брои средно на последния етап.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $log

  2. Многоезично моделиране на данни в MongoDB

  3. Как да използвам Elasticsearch с MongoDB?

  4. Разбиране на Meteor Публикуване / Абониране

  5. Как да инсталирам по-ранна версия на mongodb с homebrew?