Mongoose 是一个优秀的 Node.js ORM 框架,可帮助构建 MongoDB 的应用程序。在使用 Mongoose 时,定义 Schema 是一个必不可少的步骤,因为这定义了文档结构、数据类型以及模型的行为。在本文中,我们将深入介绍如何定义 Mongoose Schema 时需要注意的事项,包括字段定义、数据验证和默认值设定等内容。
1. 字段的定义
Mongoose Schema 的定义包括字段名称、数据类型和选项等。定义的字段将成为文档的一部分,下面是一个简单的字段定义示例:
-- -------------------- ---- ------- ----- ---------- - --- ----------------- --------- - ----- ------- --------- ----- ------- ----- -- ------ - ----- ------- --------- ----- ------- ----- ------ ------------------------------------------------- -- ---- - ----- ------- ---- --- ---- ---- -------- --- -- ------ - ----- ------- --------- - ---------- -------- --- - ------ ----------------- -- -------- ------- -- --------------- -- --- - ----- ----- --------- -- -- ---
在上面的示例中,我们定义了四个字段:username
、email
、age
和 phone
。其中,username
和 email
的类型为 String,并且必须设置为唯一值,email
的格式还需要匹配一个正则表达式。age
的类型为 Number,允许的最小值为 18,最大值为 100,如果没有给出值,则默认为 20。phone
的类型为 String,还为该字段定义了一个自定义验证器,用于验证电话号码的格式是否正确。
2. 数据验证
在 Mongoose 中,数据验证是非常重要的一部分。它可以确保文档遵守我们定义的规则和要求,同时防止非法数据的插入。在定义 Schema 时,我们可以使用以下选项来进行数据验证:
required
:true 表示该字段是必需的;unique
:true 表示该字段的值必须唯一;match
:用于定义该字段的值所必须匹配的正则表达式;enum
:用于定义该字段的值只能是指定的枚举值;min
和max
:用于限制数字类型字段的范围;validate
:用于定义一个自定义验证器函数。
在上面的示例中,我们定义了多个数据验证选项,确保了文档中的数据的正确性和完整性。
3. 默认值设定
在 Mongoose 中,我们还可以为字段设置默认值。当该字段为空时,该默认值将被用于替代它。这对于某些字段非常有用,如日期类型字段。例如:
const userSchema = new mongoose.Schema({ createdAt: { type: Date, default: Date.now, }, });
在上面的示例中,我们为 createdAt
增加了默认值 Date.now
,这意味着如果没有传递此属性的值,则会将当前日期和时间设为创建日期的默认值。
总结
在本文中,我们深入介绍了 Mongoose Schema 的定义,包括字段定义、数据验证和默认值设定等内容。我们通过示例代码演示了如何在定义 Schema 时设置数据类型、验证规则和默认值等属性选项,以及如何定义自定义验证器函数。综合来看,在定义 Schema 时需要注意的事项多种多样,但无论如何,数据正确、完整和符合预期是至关重要的,使用 Mongoose 能够帮助我们轻松实现这些目标。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c0d0a583d39b4881528948