Mongoose Schema 类型列表以及常见类型的详解

· 约 5 分钟读完

在使用 Node.js 开发 Web 应用程序时,Mongoose 是一个非常流行的对象模型工具。它提供了对 MongoDB 数据库的访问和管理,可以轻松地进行 CRUD 操作。

在 Mongoose 中,Schema 是一个非常重要的概念,它定义了文档的结构和属性。在此篇文章中,我们将详细介绍 Mongoose Schema 类型列表以及常见类型的详解。

Mongoose Schema 类型列表

Mongoose 中定义了多种类型,以下是一些常见的类型列表:

  • String(字符串类型)
  • Number(数字类型)
  • Date(日期类型)
  • Buffer(二进制数据)
  • Boolean(布尔类型)
  • Mixed(混合类型)
  • ObjectId(MongoDB 对象 ID)
  • Array(数组)

接下来我们将分别对这些类型进行简介和详解。

String 类型

String 类型很常见,它代表一个字符串。它支持以下验证器和选项:

验证器

  • required:表示该字符串必填。
  • minlength:表示该字符串的最小长度。
  • maxlength:表示该字符串的最大长度。
  • match:使用正则表达式进行字符串匹配。

选项

  • enum:限定字符串的取值范围。

Number 类型

Number 类型代表一个数字。它支持以下选项和验证器:

验证器

  • min:最小值。
  • max:最大值。

选项

  • default:默认值。

Date 类型

Date 类型代表一个日期对象。它支持以下选项和验证器:

验证器

  • min:最小日期。
  • max:最大日期。

选项

  • default:默认值。

Buffer 类型

Buffer 类型代表二进制数据。它没有特殊的选项和验证器。

Boolean 类型

Boolean 类型代表一个布尔值。它没有特殊的选项和验证器。

Mixed 类型

Mixed 类型允许我们在一个文档中储存任何数据类型,是一种非常灵活的数据类型。它没有特殊的选项和验证器。

ObjectId 类型

ObjectId 类型代表 MongoDB 的对象 ID。它没有特殊的选项和验证器。

Array 类型

Array 类型代表一个数组,可以存储任何类型的数据。它支持以下选项和验证器:

验证器

  • minlength:数组的最小长度。
  • maxlength:数组的最大长度。

选项

  • default:默认值。

示例代码

接下来我们将用一个例子来说明以上类型的用法:

以上代码定义了一个用户的 Schema,它包含了 name(必填的字符串类型,长度在 3 和 20 之间)、age(数字类型,范围在 18 到 60 之间,如果没有值则默认为 18)、email(字符串类型,需要符合指定的正则表达式)、birthday(日期类型,不晚于当天)、avatar(二进制数据类型)、isOnline(布尔类型,默认值为 false)、personalInfo(混合类型)和 friends(ObjectId 类型数组,默认为空数组)。

当我们创建用户数据时,就需要按照以上 Schema 中所设定的类型来进行构造。例如,创建一个用户的代码如下:

以上代码创建了一个名为 Tom 的用户,他的年龄为 22 岁,生日为 1999 年 10 月 10 日,头像的二进制数据为 '图片二进制数据',他的个人信息是一个对象,包含了一个自我介绍,他有两个好友,这两个好友的 ID 分别为两个新生成的 ObjectId。

小结

在本篇文章中,我们详细介绍了 Mongoose Schema 类型列表以及常见类型的详解。在使用 Mongoose 构建应用时,选择合适的类型非常重要,他们可以帮我们更加规范和方便地管理数据。希望读者可以根据以上的介绍,灵活运用 Mongoose 中的不同类型,创造出更加优秀、高效的 Web 应用程序。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67d7c400a941bf7134de8cd0