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

Извличане на дължината на списък в MongoDB

Сега мога да мисля в два подхода:

1) Използване на рамка за агрегиране:

db.log.aggregate([ { $unwind : "$entries" }, { $group : { _id : "$_id", entries : {$sum:1}  } }  ]);

2) Или можете да добавите поле към документа, което съдържа броя на записите. Така че всеки път, когато натискате нова стойност към масива с записи, трябва да увеличавате брояча. Актуализацията ще изглежда така:

db.log.update({ _id : 123 }, { $push : { entries : 'value' }, $inc : { entriesCount : 1 } })

Ясно е, че тук имате компромис:рамката за агрегиране е твърде скъпа за тази проста операция. Но добавяйки поле към документа, всяка актуализация трябва да увеличава брояча.

IMHO, броячът изглежда по-разумен, въпреки че изглежда заобиколно решение.



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

  2. Защо има нарушение на достъпа при свързване към MongoDB от C++?

  3. Как да съхранявате файлове в MongoDB?

  4. MongoDB Aggregate $unwind $match using date - какво пропуснах?

  5. Как да използвате $arrayElemAt и да премахнете полета от този елемент в MongoDB $projection?