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

Pobieranie długości listy w MongoDB

Teraz mogłem myśleć na dwa sposoby:

1) Korzystanie ze struktury agregacji:

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

2) Lub możesz dodać pole do dokumentu, który przechowuje liczbę wpisów. Tak więc za każdym razem, gdy wstawiasz nową wartość do tablicy wpisów, musisz zwiększyć licznik. Aktualizacja będzie wyglądać tak:

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

Oczywiście masz tu kompromis:struktura agregacji jest zbyt droga dla tej prostej operacji. Ale dodając pole do dokumentu, każda aktualizacja powinna zwiększać licznik.

IMHO, licznik wygląda bardziej rozsądnie, choć wygląda na obejście.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Przegląd raportowania operacyjnego bazy danych w ClusterControl

  2. Jak działa parametr arrayFilters w MongoDB

  3. Jak wybrać jedno pole dla wszystkich dokumentów w kolekcji MongoDB?

  4. Identyfikatory Mongo prowadzą do przerażających adresów URL

  5. Limit czasu równoważenia MongoDB z opóźnioną repliką