Puede hacerlo usando el soporte de MongoDB para índices parciales que se agregó en 3.2.
var mySchema = new Schema({ oneTrue: Boolean });
mySchema.index({oneTrue: 1}, {unique: true, partialFilterExpression: {oneTrue: true}});
Esto creará el índice único en oneTrue
campo solo donde su valor es true
. De esa forma, múltiples documentos con un false
Se permiten valores, pero solo uno donde es true
.