Puoi farlo utilizzando il supporto di MongoDB per indici parziali che è stato aggiunto in 3.2.
var mySchema = new Schema({ oneTrue: Boolean });
mySchema.index({oneTrue: 1}, {unique: true, partialFilterExpression: {oneTrue: true}});
Questo creerà l'indice univoco su oneTrue
campo solo dove il suo valore è true
. In questo modo, più documenti con un false
valore sono consentiti, ma solo uno in cui è true
.