猫鼬模式设置字符串的最大长度
mongoose schema set max length for a String
我正在用 Nodejs 中的 mongoose 做一个模式。我正试图找到一种方法来限制 SchemaString 中的字符数。我发现可以使用带有关键字 match 的正则表达式,例如:
var schema = new Schema({
{
name: {type: String, match: '/^.{0,20}$/'}
});
但我只想知道是否有一些参数可以直接指定一个最大长度,像这样:
var schema = new Schema({
{
name: {type: String, max: 20}
});
感谢您的帮助。
由于 Mongoose 4.0.0-rc2, the maxLength
验证可用:
var Schema = new mongoose.Schema({
name: {type: String, required: true, maxLength: 20}
});
对于早于 4.0.0-rc2 的版本 ,内置 is no such validation。
但是您可以使用路径函数创建此验证:
Schema.path('name').validate(function (v) {
return v.length <= 20;
}, 'The maximum length is 20.');
或者您可以使用 mongoose-validator。来自他们自述文件中的示例:
var mongoose = require('mongoose');
var validate = require('mongoose-validator');
var nameValidator = [
validate({
validator: 'isLength',
arguments: [3, 50],
message: 'Name should be between 3 and 50 characters'
}),
validate({
validator: 'isAlphanumeric',
passIfEmpty: true,
message: 'Name should contain alpha-numeric characters only'
})
];
var Schema = new mongoose.Schema({
name: {type: String, required: true, validate: nameValidator}
});
我正在用 Nodejs 中的 mongoose 做一个模式。我正试图找到一种方法来限制 SchemaString 中的字符数。我发现可以使用带有关键字 match 的正则表达式,例如:
var schema = new Schema({
{
name: {type: String, match: '/^.{0,20}$/'}
});
但我只想知道是否有一些参数可以直接指定一个最大长度,像这样:
var schema = new Schema({
{
name: {type: String, max: 20}
});
感谢您的帮助。
由于 Mongoose 4.0.0-rc2, the maxLength
验证可用:
var Schema = new mongoose.Schema({
name: {type: String, required: true, maxLength: 20}
});
对于早于 4.0.0-rc2 的版本 ,内置 is no such validation。
但是您可以使用路径函数创建此验证:
Schema.path('name').validate(function (v) {
return v.length <= 20;
}, 'The maximum length is 20.');
或者您可以使用 mongoose-validator。来自他们自述文件中的示例:
var mongoose = require('mongoose');
var validate = require('mongoose-validator');
var nameValidator = [
validate({
validator: 'isLength',
arguments: [3, 50],
message: 'Name should be between 3 and 50 characters'
}),
validate({
validator: 'isAlphanumeric',
passIfEmpty: true,
message: 'Name should contain alpha-numeric characters only'
})
];
var Schema = new mongoose.Schema({
name: {type: String, required: true, validate: nameValidator}
});