Możesz to zrobić, korzystając z obsługi przez MongoDB częściowych indeksów który został dodany w 3.2.
var mySchema = new Schema({ oneTrue: Boolean });
mySchema.index({oneTrue: 1}, {unique: true, partialFilterExpression: {oneTrue: true}});
Spowoduje to utworzenie unikalnego indeksu w oneTrue
pole tylko tam, gdzie jego wartość to true
. W ten sposób wiele dokumentów z false
wartości są dozwolone, ale tylko jedna, gdy jest true
.