私はmongodbコレクションに疎なユニークなインデックスを作成しました。Mongodbユニークな疎インデックス
var Account = new Schema({
email: { type: String, index: {unique: true, sparse: true} },
....
それは正しく作成されています
{ "ns" : "MyDB.accounts", "key" : { "email" : 1 }, "name" : "email_1", "unique" : true, "sparse" : true, "background" : true, "safe" : null }
をしかし、私はキーで2番目の文書を挿入する場合、私はこのエラーを受け取る設定されていません:
{ [MongoError: E11000 duplicate key error index: MyDB.accounts.$email_1 dup key: { : null }]
name: 'MongoError',
err: 'E11000 duplicate key error index: MyDB.accounts.$email_1 dup key: { : null }',
code: 11000,
n: 0,
ok: 1 }
任意のヒント?
電子メールフィールドに「null」のドキュメントがある場合は、コレクションをチェックインすることができます。使用しているテンプレートエンジンがそのフィールドにNULL値を挿入している可能性があります。私はローカルにチェックし、うまくいきます。 –
'email'を' unique'に設定すると、コレクション内のすべての文書で一意である必要があります。たとえば、「ヌル」値は1つのみです。だから、これは期待どおりに動作しているようです。 – WiredPrairie
ちょうどこの質問に答えました:http://stackoverflow.com/questions/17114851/mongo-id-field-duplicate-key-error/17115770#17115770 - それは非常によく似ています(そしておそらく同じ)問題です。 – WiredPrairie