Mongoose 中的 Schema 规则指南

Mongoose 是一个 Node.js 的 MongoDB 驱动程序,它提供了一种简单的方式来定义数据模型和操作 MongoDB 数据库。在 Mongoose 中,Schema 是在定义数据模型时用来描述数据结构的对象。在本文中,我们将详细介绍 Mongoose 中的 Schema 规则,包括类型、验证、默认值等方面的内容。

Schema 类型

在 Mongoose 中,Schema 支持以下数据类型:

  • String
  • Number
  • Date
  • Buffer
  • Boolean
  • Mixed
  • ObjectId
  • Array

下面是一个示例 Schema 定义:

在上面的示例中,我们定义了一个用户模型,它包含了 name、age、email、createdAt、friends 和 avatar 属性。其中,name 和 age 的类型分别为 String 和 Number,email 的类型为 String,并且必须存在且唯一,createdAt 的类型为 Date,并且默认值为当前时间,friends 的类型为字符串数组,avatar 的类型为 Buffer。

Schema 验证

在 Mongoose 中,Schema 支持以下验证规则:

  • required:字段必填。
  • min/max:数字的最小/最大值。
  • minlength/maxlength:字符串的最小/最大长度。
  • enum:枚举值。
  • match:正则表达式匹配。
  • validate:自定义验证函数。

下面是一个示例:

在上面的示例中,我们定义了一个用户模型,它包含了 name、age、gender、email 和 phone 属性。其中,name 必填且长度在 6 到 20 之间,age 的值必须在 18 到 99 之间,gender 必须是 male 或 female,email 必须符合正则表达式 /^\w-.]+@([\w-]+.)+[\w-]{2,4}$/,phone 必须符合自定义验证函数中的正则表达式。

Schema 默认值

在 Mongoose 中,Schema 支持以下默认值:

  • String/Number/Date:默认值为 null。
  • Boolean:默认值为 false。
  • ObjectId:默认值为 new ObjectId()。
  • Array:默认值为 []。

下面是一个示例:

在上面的示例中,我们定义了一个用户模型,它包含了 name、age、email、createdAt、friends、isAdmin 和 avatar 属性。其中,createdAt 的默认值为当前时间,friends 的默认值为 ['Tom', 'Jerry'],isAdmin 的默认值为 false。

总结

在本文中,我们介绍了 Mongoose 中的 Schema 规则,包括类型、验证和默认值。在实际开发中,我们可以根据业务需求来定义合适的 Schema,对数据进行有效的管理和操作。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/655ecbbfd2f5e1655d8f1fd3


纠错
反馈