Mongoose 是一个 Node.js 上的 MongoDB ORM 框架,它提供了一种简单的方式来定义和操作 MongoDB 中的文档。在 Mongoose 中,Schema 是一个关键的概念,它定义了文档的结构、默认值、验证规则等。在 Schema 中,内置类型是非常重要的一部分,它们提供了一些常用的数据类型和方法,使得开发者可以更加方便地定义和操作文档。
本文将介绍 Mongoose 中的 Schema 内置类型及其应用,包括 String、Number、Date、Boolean、Array 和 ObjectID。
String
String 类型是 Mongoose 中最常用的类型之一,它表示一个字符串。在定义 Schema 时,可以设置默认值、枚举值、正则表达式等,如下所示:
----- ---------- - --- ----------------- ----- - ----- ------- -------- ----- ----- ----- ------ ----- ----- ------ ------ ------ ----- - --
在上面的例子中,name 字段的默认值为 'John Doe',只允许取值为 'John Doe' 或 'Jane Doe',并且必须满足正则表达式 /^John Doe$/。
Number
Number 类型表示一个数字,可以是整数或浮点数。在定义 Schema 时,可以设置最大值、最小值、默认值等,如下所示:
----- ---------- - --- ----------------- ---- - ----- ------- ---- -- ---- ---- -------- -- - --
在上面的例子中,age 字段的最小值为 0,最大值为 100,如果未指定 age 字段的值,则默认为 18。
Date
Date 类型表示一个日期时间,它可以存储从 1970 年 1 月 1 日 00:00:00 UTC 开始的毫秒数。在定义 Schema 时,可以设置默认值、最小值、最大值等,如下所示:
----- ---------- - --- ----------------- --------- - ----- ----- -------- --------- ---- ------------- ---- -------- - --
在上面的例子中,birthday 字段的默认值为当前时间,最小值为 1900 年 1 月 1 日,最大值为当前时间。
Boolean
Boolean 类型表示一个布尔值,它只能取值 true 或 false。在定义 Schema 时,可以设置默认值,如下所示:
----- ---------- - --- ----------------- ------ - ----- -------- -------- ----- - --
在上面的例子中,isVip 字段的默认值为 false。
Array
Array 类型表示一个数组,它可以存储多个值,可以是任意类型。在定义 Schema 时,可以设置默认值、枚举值、验证规则等,如下所示:
----- ---------- - --- ----------------- -------- - ----- --------- -------- ------------ ----- ----------- ---------- ------------ --------- - ---------- ----------- - ------ -------- -- - -- -------- -------- ------ --- ------ -- - - --
在上面的例子中,hobbies 字段的默认值为 ['reading'],只允许取值为 'reading'、'writing' 或 'swimming',并且数组的长度不能超过 5。
ObjectID
ObjectID 类型表示 MongoDB 中的 ObjectId,它是一个唯一标识符,用来标识一个文档。在定义 Schema 时,可以设置默认值,如下所示:
----- ---------- - --- ----------------- ---- - ----- ------------------------------- -------- ----------------------- - --
在上面的例子中,_id 字段的默认值为一个新的 ObjectId。
总结
本文介绍了 Mongoose 中的 Schema 内置类型及其应用,包括 String、Number、Date、Boolean、Array 和 ObjectID。这些内置类型提供了一些常用的数据类型和方法,使得开发者可以更加方便地定义和操作文档。希望本文能够帮助读者更好地理解 Mongoose 中的 Schema 内置类型。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6602a070d10417a222e74702