sql >> Databáze >  >> NoSQL >> MongoDB

Proč MongoDB vyžaduje `unique:true` k vytvoření kolekce?

Právě jsem se pokusil replikovat scénář, který jste popsali výše, na svém konci s téměř stejnou verzí mongoose a MongoDB, fungovalo to dobře, dokumenty byly vytvořeny (a uloženy) bez jedinečné vlastnosti na firstName pole ve schématu. Nemyslím si, že důvodem, proč nebyly vaše objekty uloženy do DB, je absence jedinečné vlastnosti.

Důvodem, proč kolekce nebyla vytvořena bez jedinečné vlastnosti, je také to, že mongoose (nebo samotná MongoDB) nevytvoří kolekci, dokud do kolekce nevložíte data. Přidáním jedinečné vlastnosti by MongoDB musel vytvořit indexový dokument pro tuto vlastnost v kolekci a následně přidat data do kolekce, a proto se zdá, že kolekce byla vytvořena až po přidání jedinečné vlastnosti. Takže zatímco db.<collectionName>.find({} ) nemusí vrátit nic, db.<collectionName>.getIndexes() by ti něco dalo.




  1. MongoDB $indexOfCP

  2. Jak propojit Mongo DB s aplikací pro Android

  3. Začínáme s Pythonem a MongoDB

  4. BsonValue a vlastní třídy v MongoDB C# Driver