sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Por qué MongoDB requiere `unique:true` para crear una colección?

Intenté replicar el escenario que describiste anteriormente en mi extremo con casi la misma versión de mongoose y MongoDB, funcionó bien, los documentos se crearon (y guardaron) sin la propiedad única en firstName campo en el esquema. No creo que la razón por la que sus objetos no se guardaron en la base de datos sea por la ausencia de la propiedad única.

Además, la razón por la que la colección no se creó sin la propiedad única es que mongoose (o MongoDB en sí) no creará una colección hasta que inserte datos en la colección. Al agregar la propiedad única, MongoDB tendría que crear un documento de índice para esa propiedad en la colección y, en consecuencia, agregar datos a la colección y es por eso que parece que la colección se creó solo después de agregar la propiedad única. Entonces, mientras db.<collectionName>.find({} ) podría no devolver nada, db.<collectionName>.getIndexes() te daría algo.