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

Referências vs incorporações no MongoDB


Você pode definir um índice no subcampo de email com { unique:true } definido. Isso impedirá que várias cópias do endereço de e-mail sejam armazenadas na coleção.

Por exemplo, digamos que seus documentos sejam parecidos com isto:
db.users.findOne() => 
{ 
  "name" : "xxxx", 
  "emails" : [ 
     { address: "[email protected]", validated: false },
     { address: "[email protected]", validated: true }
  ]
}

Você pode definir um índice exclusivo no campo email.address assim:
db.users.ensureIndex(['emails.address',1], {unique: true})

Agora você receberá um erro se tentar inserir o mesmo endereço de e-mail duas vezes. Ele também ajudará você a otimizar a busca de usuários por seu endereço de e-mail, o que certamente será útil em seu aplicativo em algum momento ou outro.