Mongoose具有唯一的布尔值true

时间:2016-02-15 11:16:53

标签: node.js mongodb mongoose

我知道如何将字符串设置为我的架构上的唯一字符串,如下所示:

string: { type: String, unique: true }

但是有没有办法在对象上使用true值的唯一boolean并使用false(默认设置)?我需要的是:如果我尝试保存一个具有true值的对象,并且返回一个true,则返回错误。

感谢您的帮助。

2 个答案:

答案 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,就可以看到它:

  

声明一个唯一索引。

您需要实现自定义读/写过程才能实现您的目标。