Aplica una restricción única en Índices compuestos. Un índice compuesto único garantiza la unicidad de la combinación de los valores clave del índice.
Para crear un índice único en la MongoDB Shell, usa el
db.collection.createIndex() método con la opción unique configurada a true.
db.collection.createIndex( { <field1>: <sortOrder>, <field2>: <sortOrder>, ... <fieldN>: <sortOrder> }, { unique: true } )
Acerca de esta tarea
Este ejemplo añade un índice compuesto único en los campos groupNumber, lastname y firstname de una colección members. El índice garantiza que la combinación de estos valores de campo sea única para cada documento de la colección.
Pasos
Para crear un índice único en los campos groupNumber, lastname y firstname de la colección members, ejecute el siguiente comando en mongosh:
db.members.createIndex( { groupNumber: 1, lastname: 1, firstname: 1 }, { unique: true } )
El índice creado aplica la unicidad para la combinación de los valores de groupNumber, lastname, y firstname.
Índices únicos compuestos en campos con arreglos integrados
Considera una colección con el siguiente documento:
db.myColl.insertOne( { _id: 1, a: [ { loc: "A", qty: 5 }, { qty: 10 } ] } )
Crea un índice compuesto único multikey en a.loc y a.qty:
db.myColl.createIndex( { "a.loc": 1, "a.qty": 1 }, { unique: true } )
El índice único permite la inserción de los siguientes documentos en la colección, ya que el índice aplica la unicidad de la combinación de valores de a.loc y a.qty:
db.myColl.insertMany( [ { _id: 2, a: [ { loc: "A" }, { qty: 5 } ] }, { _id: 3, a: [ { loc: "A", qty: 10 } ] } ] )