模式验证
模式验证让您可以为字段创建验证规则,例如允许的数据类型或值的范围。
MongoDB 使用灵活的模式模型,这意味着集合中的文档默认不需要具有相同的字段或数据类型。建立应用程序模式后,您可以使用模式验证来确保没有意外的模式更改或不当的数据类型出现。
对于 MongoDB Atlas 中托管的部署,您可以在用户界面中实施模式验证。
何时使用模式验证
模式验证需求取决于用户如何使用您的应用程序。如果应用程序处于开发早期阶段,模式验证可能会施加无意义的限制,因为您尚不知道如何组织数据。具体来说,您集合中的字段可能会随时间而变化。
模式验证对于已实现的应用程序最有用,因为在搭建应用程序的过程中,您已经对如何组织数据有了清晰的认知。您可以在以下情况下使用模式验证:
对于用户集合,请确保
password
字段仅存储为字符串。此验证可防止用户将密码保存为预期以外的数据类型,例如图像。对于销售集合,确保
item
字段属于商店销售的物品清单。该验证可防止用户在输入销售数据时意外拼错物品名称。对于学生集合,确保
gpa
字段始终为正数。该验证可以防止在数据输入过程中出现错误。
MongoDB 检查验证时
将模式验证规则添加到集合后:
所有文档插入必须与规则匹配。
模式验证级别定义如何将规则应用于现有文档和文档更新。如要了解更多信息,请参阅为现有文档指定验证级别。
要在集合中查找与模式验证规则不匹配的文档,请参阅查找与模式不匹配的文档。
文档验证失败时会发生什么情况
默认情况下,当插入或更新操作将导致文档无效时,MongoDB 会拒绝该操作,并且不会将文档写入集合。
或者,您可以对 MongoDB 进行配置,使其在处理违反模式的操作时,允许无效文档出现并记录警告。
要了解更多信息,请参阅选择如何处理无效文档。
开始体验
有关涉及模式验证的常见任务,请参阅以下页面:
了解详情
要了解 MongoDB 灵活的模式模型,请参阅数据建模。