Anda dapat menentukan indeks pada sub-bidang email dengan set { unique:true }. Ini akan mencegah beberapa salinan alamat email disimpan dalam koleksi.
Misalnya, dokumen Anda terlihat seperti ini:
db.users.findOne() =>
{
"name" : "xxxx",
"emails" : [
{ address: "[email protected]", validated: false },
{ address: "[email protected]", validated: true }
]
}
Anda dapat menentukan indeks unik pada bidang email.address seperti ini:
db.users.ensureIndex(['emails.address',1], {unique: true})
Sekarang Anda akan mendapatkan kesalahan jika Anda mencoba memasukkan alamat email yang sama dua kali. Ini juga akan membantu Anda mengoptimalkan pencarian pengguna dengan alamat email mereka yang pasti akan berguna di aplikasi Anda di beberapa titik atau lainnya.