Mongoose 如何进行限制和验证?

阅读时长 5 分钟读完

Mongoose是一个在Node.js环境下运行的优秀MongoDB数据库接口程序。它具有强大的数据访问控制功能,通过Mongoose进行的所有操作都遵循实体属性定义的约束。本文将介绍如何在Mongoose中使用Schema来限制和验证集合中的文档。

Schema 和验证器

在Mongoose中,Schema是对文档结构的描述,包含字段名、类型和配置等信息。Schema支持一些内置类型和选项,例如String、Number和Boolean等。Mongoose提供了一些默认验证器和自定义验证器,可以应用于字段上。

以下是一个示例化的Schema:

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

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

该示例创建一个名为userSchema的Schema,其中定义了三个字段:name,emailagename是必须字段,长度必须介于2到20个字符之间。email必须是唯一的,同时需要满足指定的正则表达式匹配规则。age属性必须大于13且小于120。

在schema中使用验证器可以避免在代码中判断是否符合条件,简化了开发过程。

Model 和保存

Model是Mongoose对MongoDB集合的封装。Model提供了对集合进行查询、更新和删除等操作的方法。在Model上调用构造函数时,需要一个Schema作为参数。这会将Model与Schema联系起来,并使通过Model创建的文档自动采用模式限制。

下面是一个使用了之前定义的Schema的完整示例代码:

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

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

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

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

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

在以上示例中,mongoose.model函数将Schema和一个名为"User"的集合关联起来。调用save方法是通过Model User创建新文档并将其保存到MongoDB中。

总结

Mongoose提供了强大的Schema功能,方便进行文档级别的数据验证和限制。使用Schema不仅可以避免代码中冗余的判断操作,还可以规范数据格式,保证系统的稳定性和安全性。对于

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

纠错
反馈