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

Jak liczyć ilość dokumentów w kolekcji MongoDB w ramach Node?

Aby uzyskać liczbę dokumentów w kolekcji, użyj db.collection.find({}).count() .

Jednak to, co próbujesz zrobić, nie zadziała. Kiedy masz dużo równoległych dostępów do bazy danych, możliwe jest, że wiele wątków zrobi to w tym samym czasie, otrzyma tę samą liczbę i wstawi dokument o tym samym identyfikatorze. Zgodnie z twierdzeniem CAP , rozproszona baza danych, taka jak MongoDB, nie może zapewnić takiej spójności.

Zamiast tego powinieneś polegać na MongoDB ObjectId jako unikalne identyfikatory dokumentów. MongoDB generuje je automatycznie dla każdego dokumentu, jeśli nie podasz własnej wartości dla _id . Identyfikatory ObjectId są globalnie unikalne (wystarczająco unikatowe dla jakichkolwiek praktycznych celów), więc nie dostaniesz żadnych kolizji. Zaczynają się również od sygnatury czasowej, więc gdy zamawiasz według _id otrzymujesz mniej więcej porządek chronologiczny (jak wcześniej wspomniano, ścisły porządek chronologiczny jest niemożliwy do zapewnienia przez system rozproszony).

Zasadniczo zawsze, gdy użyjesz AUTO_INCREMENT w SQL prawdopodobnie użyjesz ObjectId w MongodDB.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nie można odczytać właściwości „castForQuery” undefined w castArrayFilters w Node.js

  2. Jak zaimplementować tagi postów w Mongo?

  3. Wersjonowanie Mongoose:kiedy można go bezpiecznie wyłączyć?

  4. Konkretny miesiąc zapytania Mongodb | rok nie data

  5. Metoda wyszukiwania Mongoose z $lub warunkiem nie działa poprawnie