2015-10-08 53 views
2

我想限制在蒙戈为字段选择一个号码字段的可能值:的MongoDB:限制

units : { type: Number, default: 1 }, 

但我想添加这个约束:像

授权值: [1,10,100,1000]

回答

0

在MongoDB中没有枚举,因为在json/bson中没有枚举,所以是的,你不能,只能用你的编程语言控制输入值(例如:输入意外值时触发异常)。

+0

不难解决这个问题实际上是基于内容的[mongoose](http://mongoosejs.com/)。如果你知道并理解它。下一次当你不确定时留下评论。 –

5

你都清楚地使用mongoose对此有一个可用的enum型验证:

var mySchema = new Schema({ 
    "units": { "type": Number, "default": 1, "enum": [1,10,100,1000] } 
}) 
0

猫鼬的枚举验证只能与字符串类型的作品,但你可以使用一个custom validator做到这一点:

units : { 
    type: Number, 
    default: 1, 
    validate: { 
     validator: function (value) { 
      return [1, 10, 100, 1000].indexOf(value) !== -1; 
     }, 
     message: 'Value must be one of 1, 10, 100, 1000' 
    } 
}