Mongoose 是一个 Node.js 的 MongoDB 数据库 ODM 插件,它提供了一种基于 Schema 的方式来定义 MongoDB 的文档结构。在实际应用中,我们经常需要为文档中的某些字段设置默认值,本文将介绍如何在 Mongoose 中进行默认值的设置。
Schema 定义默认值
在 Mongoose 中,我们可以在 Schema 定义中为字段设置默认值。示例如下:
----- ---------- - --- ----------------- ----- - ----- ------- --------- ---- -- ---- - ----- ------- -------- -- -- ------ ------ --
上述示例中,我们为 age 字段设置了默认值为 18,这样在创建 user 对象时,如果没有为 age 字段赋值,则 age 字段默认值为 18。
实例方法设置默认值
如果需要动态设置某些字段的默认值,我们可以使用 Mongoose 实例方法,在保存 document 之前设置字段默认值。示例如下:
----- ---------- - --- ----------------- ----- - ----- ------- --------- ---- -- ---- ------- ------ ------ -- ------------------------------ - ---------- - -- ----------- - -------- - -- - -
上述示例中,我们定义了一个 setDefaults 方法,在保存 document 之前会调用该实例方法,如果 age 字段没有赋值,则将 age 设置为默认值 18。
在使用时,需要先获取 user 对象,然后调用 setDefaults 方法设置默认值,示例如下:
----- ---- - --- ------ ----- ----- -- ------------------ --------------- ----- -- - -- ----- - ---------------- - ---- - ----------------- - --
钩子函数设置默认值
Mongoose 还提供了钩子函数来对 document 进行特定操作,例如在保存 document 之前或之后执行自定义逻辑。我们可以使用 Mongoose 的钩子函数来设置字段的默认值。示例如下:
----- ---------- - --- ----------------- ----- - ----- ------- --------- ---- -- ---- ------- ------ ------ -- ---------------------- -------------- - -- ----------- - -------- - -- - ------ --
上述示例中,我们调用了 pre 钩子来在保存 document 之前执行自定义逻辑,在 pre 钩子中判断 age 字段是否存在,如果不存在则设置为默认值 18。
总结
本文介绍了 Mongoose 中设置默认值的三种方式:在 Schema 定义中设置默认值、使用实例方法设置默认值和使用钩子函数设置默认值。在实际开发中,根据不同的业务场景,我们可以选择合适的方式来设置字段的默认值,提高开发效率和编码质量。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6469d4bc968c7c53b09a2dfb