sql >> Databasteknik >  >> NoSQL >> MongoDB

Varför kräver MongoDB `unique:true` för att skapa en samling?

Jag försökte precis replikera scenariot du beskrev ovan på min sida med nästan samma version av mongoose och MongoDB, det fungerade bra, dokument skapades (och sparades) utan den unika egenskapen på firstName fältet i schemat. Jag tror inte att anledningen till att dina objekt inte sparades i DB är att den unika egenskapen saknas.

Anledningen till att samlingen inte skapades utan den unika egenskapen är att mongoose (eller MongoDB själv) inte kommer att skapa en samling förrän du infogar data i samlingen. Genom att lägga till den unika egenskapen skulle MongoDB behöva skapa ett indexdokument för den egenskapen i samlingen och följaktligen lägga till data till samlingen och det är därför det verkar som att samlingen skapades först efter att den unika egenskapen lagts till. Så medan db.<collectionName>.find({} ) kanske inte returnerar något, db.<collectionName>.getIndexes() skulle ge dig något.




  1. Schemaläggning av selleriuppgifter med stor ETA

  2. Hur skriver man matchningsvillkor för matrisvärden?

  3. Växla booleskt värde för underdokument

  4. Hur väljer man två tabellvärden (dokument) åt gången efter användar-id i mongoose?