MongoDB v1.8 +以降、sparse
を設定することで、一意の値を確保しながら、フィールドなしで複数のドキュメントを許可するという望ましい動作を実現できます。 インデックスを定義するときにtrueに設定するオプション。のように:
email : {type: String, trim: true, index: true, unique: true, sparse: true}
またはシェル内:
db.users.ensureIndex({email: 1}, {unique: true, sparse: true});
一意のまばらなインデックスでは、email
を含む複数のドキュメントを引き続き許可しないことに注意してください。 値のフィールド null
の 、複数のドキュメントのみなし email
フィールド。
http://docs.mongodb.org/manual/core/index-sparse/
を参照してください