2013-01-11 9 views
6

私は、コレクションが電子メールアドレスとsweepstakes_idの組み合わせに基づいて各ドキュメントが一意であることを確認する特別なケースがあります。私は何度も見てきましたが、この種の検証をどのように達成するかを見つけることはできません。Mongooseスキーマで複数の値を使用するユニークなドキュメント

スキーマ定義は:

var submissionSchema = new Schema({ 
    client_id: { 
     type: Schema.Types.ObjectId, 
     ref: 'Client', 
     index: true 
    }, 
    sweepstakes_id: { 
     type: Schema.Types.ObjectId, 
     ref: 'Sweepstakes', 
     index: true 
    }, 
    email: { 
     type: String, 
     index: true 
    }, 
    data: { 
     type: Schema.Types.Mixed, 
     default: [] 
    } 
}); 

答えて

39

あなたは強制することができ、その両方のフィールドが含まれて一意のインデックスを使用して:私が探していたまさに

submissionSchema.index({ email: 1, sweepstakes_id: 1 }, { unique: true }); 
+0

。魅力のように働いた。ありがとうございました! –

+0

1人は何のために滞在しますか? –

+2

私はここで答えを見つけた:http://stackoverflow.com/questions/12573753/creating-multifield-indexes-in-mongoose-mongodb –

関連する問題