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

Dlaczego MongoDB wymaga `unique:true` do utworzenia kolekcji?

Próbowałem po prostu powtórzyć scenariusz, który opisałeś powyżej, z prawie tą samą wersją mongoose i MongoDB, zadziałało dobrze, dokumenty zostały utworzone (i zapisane) bez unikalnej właściwości firstName pole w schemacie. Nie sądzę, że powodem, dla którego twoje obiekty nie zostały zapisane w DB, jest brak unikalnej właściwości.

Ponadto powodem, dla którego kolekcja nie została utworzona bez unikalnej właściwości, jest to, że mongoose (lub sama MongoDB) nie utworzy kolekcji, dopóki nie wstawisz danych do kolekcji. Dodając unikalną właściwość, MongoDB musiałby utworzyć dokument indeksu dla tej właściwości w kolekcji, w konsekwencji dodając dane do kolekcji i dlatego wydaje się, że kolekcja została utworzona dopiero po dodaniu unikalnej właściwości. Więc podczas gdy db.<collectionName>.find({} ) może nic nie zwrócić, db.<collectionName>.getIndexes() dałoby ci coś.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jaka jest różnica między changeStream a tailable kursorem w MongoDB?

  2. Usuń wszystkie pola, które są puste

  3. Ostrzeżenia dotyczące uruchamiania serwera Mongo DB

  4. polecenie mongorestore zastąpić istniejące rekordy?

  5. Dwuwierszowa aplikacja NodeJS ulega awarii podczas mongoose.connect() podczas próby połączenia z bazą danych mongolab MongoDB