2017-06-19 14 views
1

メールフィールドは一意に設定されていますが、必須ではありません。マングースフィールドは必須ではありません。

ユーザーが何も入力しなければ、Mongooseは「null」を入れてしまうという問題があります。これにより、電子メールフィールドに入力しないすべてのユーザーに「null」が割り当てられるため、重複が発生します。

これを避けるための標準的な方法は何ですか?文書は、フィールドの値、アイテムは、それを含む任意のインデックスにnullになります のインデックスエントリを持っていない場合は

おかげ

+0

どのように計算されるデフォルト値はありますか?どのような種類のデータ型ですか? – PeterVC

+0

これは文字列です。私はそれに文字列形式の乱数を入れることができると思いますか? –

答えて

1

はまばらなユニークなインデックス

を使用してください。したがって、多くの場合、 の状況では、ユニーク制約と スパースオプションを組み合わせることが必要になります。疎なインデックスは、インデックスエントリにnullを格納するのではなく、 インデックスフィールドがないドキュメントをスキップします。

db.collection.createIndex({ a: 1, b: 1 }, { unique: true, sparse: true })

詳細情報:https://docs.mongodb.com/v3.0/tutorial/create-a-unique-index/

+1

ありがとうございました!これは私が探していたものです –

関連する問題