Bạn có thể thực hiện việc này bằng cách sử dụng sự hỗ trợ của MongoDB cho chỉ mục từng phần đã được thêm vào 3.2.
var mySchema = new Schema({ oneTrue: Boolean });
mySchema.index({oneTrue: 1}, {unique: true, partialFilterExpression: {oneTrue: true}});
Điều này sẽ tạo chỉ mục duy nhất trên oneTrue
chỉ trường trong đó giá trị của nó là true
. Bằng cách đó, nhiều tài liệu có false
giá trị được cho phép, nhưng chỉ một giá trị trong đó giá trị đó là true
.