我知道如何将字符串设置为我的架构上的唯一字符串,如下所示:
string: { type: String, unique: true }
但是有没有办法在对象上使用true值的唯一boolean并使用false(默认设置)?我需要的是:如果我尝试保存一个具有true值的对象,并且返回一个true,则返回错误。
感谢您的帮助。
答案 0 :(得分:3)
您可以使用MongoDB对3.2中添加的partial indexes的支持来实现此目的。
var mySchema = new Schema({ oneTrue: Boolean });
mySchema.index({oneTrue: 1}, {unique: true, partialFilterExpression: {oneTrue: true}});
这将在oneTrue
字段上创建唯一索引,其值仅为true
。这样,允许使用false
值为true
的多个文档,但只允许其中一个{{1}}。
答案 1 :(得分:0)
不,这是不可能的。
如果您查看Mongoose Documentation for Unique Constraints,就可以看到它:
声明一个唯一索引。
您需要实现自定义读/写过程才能实现您的目标。