MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Por que o MongoDB requer `unique:true` para criar uma coleção?


Acabei de tentar replicar o cenário que você descreveu acima no meu final com quase a mesma versão do mongoose e do MongoDB, funcionou bem, os documentos foram criados (e salvos) sem a propriedade exclusiva no firstName campo no esquema. Eu não acho que o motivo pelo qual seus objetos não foram salvos no banco de dados é por causa da ausência da propriedade exclusiva.

Além disso, o motivo pelo qual a coleção não foi criada sem a propriedade exclusiva é que o mongoose (ou o próprio MongoDB) não criará uma coleção até que você insira dados na coleção. Ao adicionar a propriedade unique, o MongoDB teria que criar um documento de índice para essa propriedade na coleção consequentemente adicionando dados à coleção e é por isso que parece que a coleção foi criada somente após adicionar a propriedade unique. Portanto, enquanto o db.<collectionName>.find({} ) pode não retornar nada, db.<collectionName>.getIndexes() lhe daria algo.