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