Můžete to udělat pomocí podpory MongoDB pro částečné indexy který byl přidán ve 3.2.
var mySchema = new Schema({ oneTrue: Boolean });
mySchema.index({oneTrue: 1}, {unique: true, partialFilterExpression: {oneTrue: true}});
Tím vytvoříte jedinečný index na oneTrue
pole pouze tam, kde je jeho hodnota true
. Tímto způsobem bude více dokumentů s false
hodnoty jsou povoleny, ale pouze jedna, kde je true
.