Mongoose 中使用 Schema 选项详解

阅读时长 5 分钟读完

Mongoose 是 Node.js 下流行的 MongoDB 驱动程序。它提供了简单且强大的方式来操作 MongoDB。在 Mongoose 中,Schema 是一种定义数据的方式。Schema 可以包含字段、类型、默认值以及验证等选项。在本文中,我们将介绍 Mongoose 中 Schema 的选项。

定义 Schema 的基本语法

在 Mongoose 中,创建一个 Schema 很简单。首先,您需要引入 mongoose 模块,然后定义数据模型的字段。以下是一个简单的示例代码:

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

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

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

在上面的代码中,我们定义了一个名为 blogSchema 的 Schema,它有四个字段,分别是 title、content、author 和 createdAt。其中 createdAt 是一个对象,它有两个属性:type 和 default。type 属性定义它的类型为日期,default 属性定义它的默认值为当前时间。

在接下来的部分,我们将介绍一些常见的 Schema 选项及其用法。

类型(Type)选项

Type 选项是 Schema 中最基本的选项之一,它指定了字段的类型。Mongoose 支持多种类型,以下是一些常见的类型:

  • String:字符串类型;
  • Number:数字类型;
  • Date:日期类型;
  • Boolean:布尔类型;
  • Array:数组类型;
  • Object:对象类型;
  • ObjectId:文档 ID 类型;
  • Mixed:混合类型,可以包含任何类型。

以下是一个使用 Type 选项的示例代码:

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

在上面的例子中,我们使用 String 类型来定义 title 字段,并使用 required 选项将其设置为必填项。

验证(Validation)选项

在 Mongoose 中,您可以使用验证选项对数据进行验证。以下是一些常见的验证选项:

  • required:必填项;
  • minlength:最小长度;
  • maxlength:最大长度;
  • match:匹配正则表达式;
  • enum:枚举值,只允许特定的取值。

以下是一个包含验证选项的示例代码:

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

在上面的代码中,我们对 title、content、author 和 tags 字段进行了验证。

默认值(Default)选项

默认值选项指定了字段的默认值。当您创建一个新文档时,如果没有提供该字段的值,则将使用默认值。以下是一个包含默认值选项的示例代码:

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

在上面的代码中,如果创建一个新的博客文档并没有指定 title 的值,它将使用默认值 "Untitled Blog"。

其他选项

除了上面提到的选项之外,Mongoose 还提供了许多其他选项。以下是一些常见的选项及其用途:

  • unique:是否唯一;
  • index:是否为该字段创建索引;
  • select:在查询中是否选择该字段;
  • sparse:是否允许为空。

以下是一个包含其他选项的示例代码:

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

在上面的代码中,我们添加了 unique、index、select 和 sparse 选项。

总结

在本文中,我们介绍了 Mongoose 中 Schema 的选项。我们学习了类型、验证、默认值以及其他选项。了解这些选项将有助于您设计和实现更加强大和灵活的数据模型。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/645c09ab968c7c53b0e4e923

纠错
反馈