Mongoose是一个在Node.js环境下运行的优秀MongoDB数据库接口程序。它具有强大的数据访问控制功能,通过Mongoose进行的所有操作都遵循实体属性定义的约束。本文将介绍如何在Mongoose中使用Schema来限制和验证集合中的文档。
Schema 和验证器
在Mongoose中,Schema是对文档结构的描述,包含字段名、类型和配置等信息。Schema支持一些内置类型和选项,例如String、Number和Boolean等。Mongoose提供了一些默认验证器和自定义验证器,可以应用于字段上。
以下是一个示例化的Schema:
-- -------------------- ---- ------- ----- -------- - -------------------- ----- - ------ - - --------- ----- ---------- - --- -------- ----- - ----- ------- --------- ------ -- ---- -- ----------- ---------- --- ----- ---- -- -- ----- - ---------- ------- ---------- ---- ----- ------ ------ -- ------------- ----- ---- -- ------ - ----- ------- --------- ------ --- ----- -- ----------- ------- ----- ------ --------------------------------------- ------- ---- - ----- ----- --------- -- ---- - ----- ------- ---- ---- ---- ---- -- -- ----- ----- ---- ----- ---- ------ ------ ----- - ---
该示例创建一个名为userSchema
的Schema,其中定义了三个字段:name
,email
和age
。name
是必须字段,长度必须介于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