これは、MongoDBの部分インデックス のサポートを使用して行うことができます。 3.2で追加されました。
var mySchema = new Schema({ oneTrue: Boolean });
mySchema.index({oneTrue: 1}, {unique: true, partialFilterExpression: {oneTrue: true}});
これにより、oneTrue
に一意のインデックスが作成されます 値がtrue
の場合のみフィールド 。そうすれば、false
を持つ複数のドキュメント 値は許可されますが、true
の場合は1つだけです 。