在 MongoDB 中使用 Mongoose 库进行数据建模时,可以很方便地定义模式(Schema)。模式是一种规范,用于描述文档属性和默认值。通常情况下,每个文档都有一些属性是必须有的,而一些属性则可能有默认值或者可选。
在 Mongoose 中,可以通过在模式定义中设置默认值来实现这一点。但有时候,我们需要在模式中设置嵌套对象或者数组,这些嵌套对象或者数组中的元素同样需要有默认值。本文将介绍如何在 Mongoose 的模式中设置嵌套对象或数组中元素的默认值。
为嵌套对象设置默认值
假设我们有一个名为 Student
的模式,其中有一个嵌套对象 info
,这个嵌套对象中包含了学生的个人信息,例如姓名、年龄、性别等。我们要在 info
对象中设置默认值。
----- -------- - -------------------- ----- ------ - --------------- ----- ------------- - --- -------- ----- - ----- ------- --------- ---- -- ----- - ---- - ----- ------- -------- -- -- ------- - ----- ------- -------- ------ - - --- ----- ------- - ------------------------- --------------- ----- ------- - --- --------- ----- ----- -- ---------------------
代码中,我们在定义 info
嵌套对象时,为其中的 age
和 gender
设置了默认值。在实例化 Student
对象时,只传递了必填字段 name
,则 age
和 gender
字段会自动赋值为默认值。
为嵌套数组设置默认值
同样地,我们也可以在 Mongoose 的 Schema 中为数组中的元素设置默认值,只需要在定义数组时指定元素的默认值即可。
----- -------- - -------------------- ----- ------ - --------------- ----- ------------- - --- -------- ----- - ----- ------- --------- ---- -- -------- - ----- --------- -------- ----------- ----------- ---------- - --- ----- ------- - ------------------------- --------------- ----- ------- - --- --------- ----- ----- -- ---------------------
这里我们定义了一个名为 hobbies
的数组,其中包含了三种默认值:reading
、swimming
和 jogging
。每当新建一个学生文档时,如果没有指定 hobbies
这个字段,则 hobbies
字段会被自动赋值为默认值。
总结
- 在 Mongoose Schema 中,可以为对象或数组元素设置默认值。
- 设置默认值的方式,分别是定义对象或数组时为其中的属性或元素设置默认值。
- 通过设置默认值,可以使得代码更加简洁,避免大量重复的赋值操作,提高了开发效率。
除此之外,当 Schema 的嵌套对象或数组中需要深度、复杂的操作时,我们需深入理解 Mongoose 相关的 API,进一步优化和提取代码,一个清晰规范的 Schema + Model 具有重要而又长远的价值。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6648a5acd3423812e474add6