MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Pourquoi MongoDB nécessite-t-il `unique:true` pour créer une collection ?

J'ai juste essayé de reproduire le scénario que vous avez décrit ci-dessus de mon côté avec presque la même version de mongoose et MongoDB, cela a bien fonctionné, les documents ont été créés (et enregistrés) sans la propriété unique sur le firstName champ dans le schéma. Je ne pense pas que la raison pour laquelle vos objets n'ont pas été enregistrés dans la base de données soit due à l'absence de la propriété unique.

De plus, la raison pour laquelle la collection n'a pas été créée sans la propriété unique est que mongoose (ou MongoDB lui-même) ne créera pas de collection tant que vous n'aurez pas inséré de données dans la collection. En ajoutant la propriété unique, MongoDB devrait créer un document d'index pour cette propriété dans la collection, ajoutant ainsi des données à la collection et c'est pourquoi il semble que la collection n'a été créée qu'après avoir ajouté la propriété unique. Ainsi, alors que le db.<collectionName>.find({} ) peut ne rien renvoyer, db.<collectionName>.getIndexes() vous donnerait quelque chose.