如何在MongoDB中应用约束?

egdjgwm8  于 2023-01-25  发布在  Go
关注(0)|答案(2)|浏览(182)

我已经开始使用MongoDB了,而且我对它还很陌生。有没有什么方法可以在MongoDB中对文档应用约束?比如指定一个主键或将一个属性视为唯一的?或者指定一个特定的属性大于最小值?

093gszye

093gszye1#

    • MongoDB 3.2更新**

MongoDB现在原生地支持文档验证。
documentation示例:

db.createCollection( "contacts",
   { validator: { $or:
      [
         { phone: { $type: "string" } },
         { email: { $regex: /@mongodb\.com$/ } },
         { status: { $in: [ "Unknown", "Incomplete" ] } }
      ]
   }
} )
    • 原答复**

要超越索引中固有的唯一性约束,需要使用Mongoose之类的东西,以及它支持基于字段的validation的能力,这将为最小值之类的东西提供支持,但只有在更新通过Mongoose模式/模型时才能提供支持。

bn31dyow

bn31dyow2#

作为一个“无模式”数据库,您提到的一些事情必须从应用程序端进行约束,而不是从数据库端进行约束(例如“最小值”)。
但是,您可以创建索引(查询的关键字--请记住,一个查询一次只能使用一个索引,因此通常最好围绕查询来设计索引,而不是仅为可能查询的每个字段建立索引):http://www.mongodb.org/display/DOCS/Indexes#Indexes-Basics
您还可以创建唯一索引,它将强制执行类似于唯一约束的唯一性(它确实有一些警告,例如数组字段):http://www.mongodb.org/display/DOCS/Indexes#Indexes-unique%3Atrue

相关问题