MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Perché MongoDB richiede `unique:true` per creare una raccolta?

Ho appena provato a replicare lo scenario che hai descritto sopra da parte mia con quasi la stessa versione di mongoose e MongoDB, ha funzionato bene, i documenti sono stati creati (e salvati) senza la proprietà univoca su firstName campo nello schema. Non credo che il motivo per cui i tuoi oggetti non sono stati salvati nel DB sia dovuto all'assenza della proprietà univoca.

Inoltre, il motivo per cui la raccolta non è stata creata senza la proprietà univoca è che mongoose (o MongoDB stesso) non creerà una raccolta finché non verranno inseriti dati nella raccolta. Aggiungendo la proprietà univoca, MongoDB dovrebbe creare un documento di indice per quella proprietà nella raccolta aggiungendo di conseguenza i dati alla raccolta ed è per questo che sembra che la raccolta sia stata creata solo dopo aver aggiunto la proprietà univoca. Quindi, mentre il db.<collectionName>.find({} ) potrebbe non restituire nulla, db.<collectionName>.getIndexes() ti darebbe qualcosa.