Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在MongoDB中应用约束?_Mongodb - Fatal编程技术网

如何在MongoDB中应用约束?

如何在MongoDB中应用约束?,mongodb,Mongodb,我已经开始使用MongoDB,而且我对它相当陌生。 是否有任何方法可以对MongoDB中的文档应用约束? 例如指定主键或将属性作为唯一属性? 或者指定某个特定属性大于最小值?作为一个“无模式”数据库,您提到的一些内容必须从应用程序端而不是数据库端进行约束。(如“最小值”) 但是,您可以创建索引(要查询的键——请记住,一个查询一次只能使用一个索引,因此通常最好围绕查询设计索引,而不是只为可能查询的每个字段编制索引): 您还可以创建唯一索引,这将强制执行与唯一约束类似的唯一性(它确实有一些警告,例

我已经开始使用MongoDB,而且我对它相当陌生。 是否有任何方法可以对MongoDB中的文档应用约束? 例如指定主键或将属性作为唯一属性? 或者指定某个特定属性大于最小值?

作为一个“无模式”数据库,您提到的一些内容必须从应用程序端而不是数据库端进行约束。(如“最小值”)

但是,您可以创建索引(要查询的键——请记住,一个查询一次只能使用一个索引,因此通常最好围绕查询设计索引,而不是只为可能查询的每个字段编制索引):

您还可以创建唯一索引,这将强制执行与唯一约束类似的唯一性(它确实有一些警告,例如数组字段):

要超越索引中本机可用的唯一性约束,您需要使用及其支持基于字段的功能。这将为您提供诸如最小值之类的支持,但仅当更新通过您的Mongoose模式/模型时才提供支持

MongoDB 3.2更新

MongoDB现在本机支持文档验证

示例来自:

db.createCollection(“联系人”,
{验证器:{$or:
[
{phone:{$type:“string”},
{电子邮件:{$regex:/@mongodb\.com$/},
{状态:{$in:[“未知”,“不完整”]}
]
}
} )

应该提到的是,根据链接,用户可以绕过此验证。然而,这是一个很好的工具。