Vous pouvez le faire en utilisant le support de MongoDB pour index partiels qui a été ajouté en 3.2.
var mySchema = new Schema({ oneTrue: Boolean });
mySchema.index({oneTrue: 1}, {unique: true, partialFilterExpression: {oneTrue: true}});
Cela créera l'index unique sur le oneTrue
champ uniquement lorsque sa valeur est true
. De cette façon, plusieurs documents avec un false
sont autorisées, mais une seule où elle est true
.