2015-10-08 87 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' 
    } 
}