Mongoose架构设置字符串的最大长度 [英] mongoose schema set max length for a String

查看:0
本文介绍了Mongoose架构设置字符串的最大长度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用NodeJS中的Mongoose创建模式。我正在尝试找到一种方法来限制SchemaString中的字符数。我发现可以使用带有关键字MatchLike:

的正则表达式
var schema = new Schema({
{
    name: {type: String, match: '/^.{0,20}$/'}
});

但我只是想知道有没有什么参数可以直接指定一个最大长度,比如:

var schema = new Schema({
{
    name: {type: String, max: 20}
});

感谢您的帮助。

推荐答案

由于Mongoose4.0.0-rc2maxLength验证可用:

var Schema = new mongoose.Schema({
  name: {type: String, required: true, maxLength: 20}
});

对于低于4.0.0-rc2的版本,有内置的is no such validation

但是,您可以使用PATH函数创建此验证:

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}
});

这篇关于Mongoose架构设置字符串的最大长度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆