Pada MongoDB v1.8+ Anda bisa mendapatkan perilaku yang diinginkan untuk memastikan nilai unik tetapi mengizinkan banyak dokumen tanpa bidang dengan menyetel sparse
opsi menjadi true saat mendefinisikan index. Seperti dalam:
email : {type: String, trim: true, index: true, unique: true, sparse: true}
Atau di shell:
db.users.ensureIndex({email: 1}, {unique: true, sparse: true});
Perhatikan bahwa indeks yang unik dan jarang masih tidak mengizinkan banyak dokumen dengan email
bidang dengan nilai dari null
, hanya beberapa dokumen tanpa sebuah email
lapangan.
Lihat http://docs.mongodb.org/manual/core/index-sparse/