Schema为数据库对象的集合,每个Schema会映射到mongodb中的一个collection,定义Schema可以理解为表结构的定义。

一、Mongoose校验参数

required 表示这个数据必须传入
max Number类型数据,最大值
min Number类型数据,最小值
enum 枚举类型,用在String类型,要求数据必须满足枚举值 enum:[‘0’,’1’,’2’]
match 增加的数据必须符合match(正则)的规则 String
maxlength 最大长度 String类型中使用
minlength 最小长度
  1. var mongoose = require('./db');
  2. var UserSchema = new mongoose.Schema({
  3. name:{
  4. type: String,
  5. required:true,
  6. maxlength:10
  7. },
  8. age:{
  9. type: Number,
  10. max:100
  11. },
  12. tel:{
  13. type: String,
  14. match:/^1/
  15. },
  16. status:{
  17. type: String,
  18. default:'success',
  19. enum:['success','error']
  20. }
  21. })
  22. module.exports = mongoose.model('User',UserSchema,'user');

二、自定义验证器

  1. var mongoose = require('./db');
  2. var UserSchema = new mongoose.Schema({
  3. name:{
  4. type: String,
  5. required:true,
  6. maxlength:10
  7. },
  8. age:{
  9. type: Number,
  10. max:100
  11. },
  12. tel:{
  13. type: String,
  14. trim:true,
  15. match:/^1/,
  16. //自定义校验
  17. validate(params){
  18. return params.length==11
  19. }
  20. },
  21. status:{
  22. type: String,
  23. default:'success',
  24. enum:['success','error']
  25. }
  26. })
  27. module.exports = mongoose.model('User',UserSchema,'user');