模式验证让您可以为字段创建验证规则,例如允许的数据类型或值的范围。
MongoDB使用灵活的模式模型。默认下,集合中的文档不需要相同的字段或数据类型。建立应用程序模式后,使用模式验证来防止意外的模式更改和数据类型错误。
对于 MongoDB Atlas 中托管的部署,您可以在用户界面中实施模式验证。
何时使用模式验证
模式验证需求取决于应用程序组织数据的方式。模式验证对于具有已定义数据结构的已建立应用程序最有用。
注意
模式验证规则也很灵活,因此不需要覆盖文档中的每个字段,除非应用程序要求这样做。
您可以在以下情况下使用模式验证:
对于
events集合,请确保start_date字段仅存储日期,而不是字符串。一致的类型可防止连接应用程序时出现意外值。对于
store集合,请确保accepted_credit_cards字段仅包含接受的卡片类型,例如["Visa", "MasterCard", "American Express"]。此规则可防止用户输入不受支持的值。对于
students集合,请确保gpa字段始终为正浮点数。此规则可防止数据输入错误。
MongoDB 检查验证时
将模式验证规则添加到集合后:
所有文档插入必须与规则匹配。
验证级别确定规则如何应用现有文档和更新。要学习;了解详情,请参阅 指定现有文档的验证级别。
要在集合中查找与模式验证规则不匹配的文档,请参阅查找与模式不匹配的文档。
文档验证失败时会发生什么情况
默认下, MongoDB会拒绝任何会生成无效文档的插入或更新操作。
或者,您可以将MongoDB配置为允许无效文档,并在发生模式违规时日志警告。
要了解更多信息,请参阅选择如何处理无效文档。
开始体验
有关模式验证任务,请参阅以下页面:
了解详情
要学习;了解MongoDB 灵活的模式模型,请参阅MongoDB中的数据建模。