Mongoose Schema 子元素默认值设置方法

在 MongoDB 中使用 Mongoose 库进行数据建模时,可以很方便地定义模式(Schema)。模式是一种规范,用于描述文档属性和默认值。通常情况下,每个文档都有一些属性是必须有的,而一些属性则可能有默认值或者可选。

在 Mongoose 中,可以通过在模式定义中设置默认值来实现这一点。但有时候,我们需要在模式中设置嵌套对象或者数组,这些嵌套对象或者数组中的元素同样需要有默认值。本文将介绍如何在 Mongoose 的模式中设置嵌套对象或数组中元素的默认值。

为嵌套对象设置默认值

假设我们有一个名为 Student 的模式,其中有一个嵌套对象 info,这个嵌套对象中包含了学生的个人信息,例如姓名、年龄、性别等。我们要在 info 对象中设置默认值。

----- -------- - --------------------
----- ------ - ---------------

----- ------------- - --- --------
  ----- -
    ----- -------
    --------- ----
  --
  ----- -
    ---- -
      ----- -------
      -------- --
    --
    ------- -
      ----- -------
      -------- ------
    -
  -
---

----- ------- - ------------------------- ---------------

----- ------- - --- ---------
  ----- -----
--
---------------------

代码中,我们在定义 info 嵌套对象时,为其中的 agegender 设置了默认值。在实例化 Student 对象时,只传递了必填字段 name,则 agegender 字段会自动赋值为默认值。

为嵌套数组设置默认值

同样地,我们也可以在 Mongoose 的 Schema 中为数组中的元素设置默认值,只需要在定义数组时指定元素的默认值即可。

----- -------- - --------------------
----- ------ - ---------------

----- ------------- - --- --------
  ----- -
    ----- -------
    --------- ----
  --
  -------- -
    ----- ---------
    -------- ----------- ----------- ----------
  -
---

----- ------- - ------------------------- ---------------

----- ------- - --- ---------
  ----- -----
--
---------------------

这里我们定义了一个名为 hobbies 的数组,其中包含了三种默认值:readingswimmingjogging。每当新建一个学生文档时,如果没有指定 hobbies 这个字段,则 hobbies 字段会被自动赋值为默认值。

总结

  • 在 Mongoose Schema 中,可以为对象或数组元素设置默认值。
  • 设置默认值的方式,分别是定义对象或数组时为其中的属性或元素设置默认值。
  • 通过设置默认值,可以使得代码更加简洁,避免大量重复的赋值操作,提高了开发效率。

除此之外,当 Schema 的嵌套对象或数组中需要深度、复杂的操作时,我们需深入理解 Mongoose 相关的 API,进一步优化和提取代码,一个清晰规范的 Schema + Model 具有重要而又长远的价值。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6648a5acd3423812e474add6