Mongoose 是 Node.js 程序中最流行的 MongoDB ODM。它允许开发者使用 Node.js 操作 MongoDB 数据库,并提供了一些类型验证功能,以确保开发者创建了正确格式的文档。
在此文章中,我们将学习如何在 Mongoose 中使用数据类型限制。
什么是数据类型限制?
在 MongoDB 中,一个文档可以包含任意数量的字段,每个字段可以存储任意类型和格式的数据。虽然 MongoDB 的这种灵活性很棒,但有时开发者希望为文档的字段添加一些限制规则,以确保这些字段按照特定的数据类型进行存储。
例如,如果您由于程序故障而将包含字符串值的数值字段存储到 MongoDB 中,系统可能会崩溃。因此,您希望限制这种情况的发生,而数据类型限制就是您需要的东西。
在 Mongoose 中,您可以通过指定字段类型和验证规则来实现数据类型限制。下面我们将学习如何使用 Mongoose 的验证规则来实现数据类型限制。
如何在 Mongoose 中进行数据类型限制
为了在 Mongoose 中使用数据类型限制,您需要定义模型。模型描述了文档的特定字段及其存储规则。下面是定义模型的示例代码:
----- -------- - -------------------- ----- ---------- - --- ----------------- ----- - ----- ------- --------- ---- -- ---- - ----- ------- --------- ----- ---- --- ---- --- -- ------ - ----- ------- --------- ----- ------- ---- - --- ----- ---- - ---------------------- ------------
在此示例中,我们定义了一个名为 User 的模型,其中包含三个字段:name、age 和 email。每个字段都有一个类型和一些验证规则。
- 字段 name 是字符串类型,是必需的,并且没有其他限制。
- 字段 age 是数字类型,是必需的,并且必须的大于等于 18 且小于等于 100。
- 字段 email 是字符串类型,是必需的,并且必须是唯一的。
定义字段类型
您可以使用 Mongoose 提供的一些默认类型来定义字段类型,包括 String、Number、Boolean、Date、Array、Buffer、ObjectId 和 Mixed。下面是一些示例:
----- ---------- - --- ----------------- ----- ------- -- ----- ---- ------- -- ---- -------- -------- -- ---- --------- ----- -- ---- -------- --------- -- ------- --------------- ------- -- ----- -------- ------------------------------- -- ------- -- -- ---------- --------------------------- -- ---- ---
添加验证规则
Mongoose 提供了一些内置验证规则来确保文档的字段符合规范。您可以通过在定义模型时传递 options 对象来添加这些验证规则。下面是一些示例:
----- ---------- - --- ----------------- ----- - ----- ------- --------- ---- -- -- -- ---- - ----- ------- ---- --- -- --- ---- --- -- --- -- ------ - ----- ------- ------- ----- -- -- ------ ---------------- -- ----- - ---
您可以使用以下内置验证规则:
- required: 这个字段必须有值,而不是 null 或 undefined。
- default: 如果这个字段没有值,使用该值代替。
- min: 值必须大于或等于提供的值。
- max: 值必须小于或等于提供的值。
- enum: 值必须是提供的枚举值列表中的一个。
- match: 值必须符合提供的正则表达式。
- maxlength: 值必须小于或等于指定长度。
- minlength: 值必须大于或等于指定长度。
- unique: 值必须是字段在集合中唯一的。
使用自定义验证规则
您也可以使用自己编写的自定义验证规则来验证字段。自定义验证规则是一个 JavaScript 函数,它接受字段的值并返回一个布尔值,以指示该值是否为有效值。下面是一个示例:
----- ------ - --- ----------------- ------ - ----- ------- --------- - ---------- ----------- - ------ ---------------------------- -- -------- ----- -- --------------- ------------- -- --------- ------ ----------- - ---
在此示例中,我们定义了一个使用自定义验证规则的 phone 字段,只有当字段的值满足正则表达式 /\d{3}-\d{3}-\d{4}/
时才被视为有效值。如果该字段的值无效,则 Mongoose 将返回由 message 属性定义的错误消息。
总结
Mongoose 是 Node.js 程序中最受欢迎的 MongoDB ODM 之一,并提供了很多有用的功能和工具来确保文档的正确性和一致性。在此文章中,我们学习了如何在 Mongoose 中使用数据类型限制来确保文档的字段符合指定的类型和验证规则。
在使用 Mongoose 进行开发时,尽量减少数据存储格式的不规范,并合理使用 Mongoose 提供的验证规则,这有助于使您的应用程序更加稳定、可靠。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/64686399968c7c53b089d5a4