Mongoose 的 Schema 规则使用详解

简介

Mongoose 是一个非常流行的 Node.js ORM 库,它提供了许多方便的功能来操作 MongoDB 数据库。其中 Schema 是一个重要的概念,它定义了 MongoDB 中的集合的结构,包括每个文档中的字段名称、类型、默认值等信息。在这篇文章中,我们将深入了解 Mongoose 的 Schema 规则,包括常用的数据类型、验证器等。

常用数据类型

Mongoose 内置了许多常用的数据类型,以下是常用的数据类型及其说明:

  • String:字符串类型
  • Number:数字类型
  • Date:日期类型
  • Buffer:二进制数据类型
  • Boolean:布尔类型
  • Mixed:混合类型,可以用来存储任意数据类型
  • ObjectId:MongoDB ObjectId 类型
  • Array:数组类型

以下是使用 Mongoose 创建一个简单的 Schema 的示例:

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

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

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

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

-----------

详细说明

String 类型

定义一个字符串类型的字段:

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

String 类型的字段包含以下属性:

  • type:类型为字符串。
  • minlength:最小长度。
  • maxlength:最大长度。
  • match:正则表达式,用来验证字符串。
  • enum:数组,用来限制字符串的值。

使用示例:

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

Number 类型

定义一个数字类型的字段:

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

Number 类型的字段包含以下属性:

  • type:类型为数字。
  • min:最小值。
  • max:最大值。

Date 类型

定义一个日期类型的字段:

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

Date 类型的字段包含以下属性:

  • type:类型为日期。
  • default:默认值。

Buffer 类型

定义一个二进制数据类型的字段:

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

Boolean 类型

定义一个布尔类型的字段:

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

Boolean 类型的字段包含以下属性:

  • type:类型为布尔。
  • default:默认值。

Mixed 类型

定义一个混合类型的字段:

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

Mixed 类型的字段可以存储任意类型的数据。

ObjectId 类型

定义一个 MongoDB ObjectId 类型的字段:

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

ObjectId 类型的字段可以用来存储 MongoDB 的 ObjectId。

Array 类型

定义一个数组类型的字段:

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

Array 类型的字段包含以下属性:

  • type:类型为数组。
  • minlength:最小长度。
  • maxlength:最大长度。
  • validate:自定义验证器。

使用示例:

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

结论

在这篇文章中,我们学习了 Mongoose 的 Schema 规则,包括常见的数据类型、验证器等。一个合理的 Schema 可以为 MongoDB 中的集合提供良好的结构定义,使得数据处理变得更加方便和有条理。在实际开发中,我们需要根据具体需求来选择合适的数据类型和验证器,从而构建优秀的数据模型。

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