介绍
小编给大家分享一下猫鼬设置独特不生效怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
独特属于模式约束验证中的一员,他的作用主要就是让某一个字段的值具有唯一性(不能重复)
保持字段的唯一性使用值类型:<代码>{类型:字符串,独特:真的,dropDups:真正}代码>
<强>注意:强>猫鼬一旦修改了数据存储的机构,数据库一定要重启,很多新手在设置一些属性不生效时都是这个原因
这里说的重启,不是简单的关闭猫鼬数据库服务器重新打开,而是先将该数据库整个删除,然后再重启数据库服务
<强>简单的模式特殊用法示例强>
//导入模块 var mongoose =,要求(& # 39;猫鼬# 39;);//连接数据库 mongoose.connect (& # 39; mongodb://localhost/itheima& # 39;);//创建模式//模式第一个参数是我们自定义的数据类型,第二个参数是管理模式默认的数据类型 var studentSchema =, mongoose.Schema ({ ,名字:{类型:字符串,要求:真},//数据类型为字符串,不能非空 ,年龄:{类型:数量,默认值:18},//数据类型为字符串,默认值18 ,study_id:{类型:数量,选择:真},//学号,默认查询字段 ,地址:{类型:字符串,小写:真},//地址,默认小写 ,电子邮件:{类型:字符串匹配:正则表达式(/^ ([a-zA-Z0-9_ -]) + @ ([a-zA-Z0-9_ -]) + ([a-zA-Z0-9_ -]) +/)},//邮箱,正则表达式验证 ,电话:{类型:字符串,独特:真的,dropDups:,真正}//电话号码唯一性 }, { versionKey才能:假的,//去掉版本锁,__v0 ,时间戳:{,createdAt: & # 39; createTime& # 39;,, updatedAt:, & # 39; updateTime& # 39;,}//自动管理修改时间 });//创建模型 var student =, mongoose.model(& # 39;学生# 39;,studentSchema);//创建实体 var zhangsan =, new 学生({ ,名字:& # 39;zhangsan& # 39;//名字必须要有,否则会报错:,名字:,Path “名字”,is 必需的。 ,地址:& # 39;ZhongLiang& # 39;//字符串都会变成小写 ,电子邮件:& # 39;a12345@qq.com& # 39;,//邮箱格式不对,添加会报错,Path “电子邮件”,is invalid (a12345qq.com)。 ,study_id: 2017001, ,电话:& # 39;123456789 & # 39;//在添加唯一性字段时,猫鼬会先查询数据库所有的手机值,一旦发现该值已存在则会报的错 });//添加数据 student.create (zhangsan、功能(err) { ,如果(err) { throw 才能,犯错; ,} ,console.log(& # 39;插入成功& # 39;,+,zhangsan); });
<强>猫鼬移除独特的限制强>
程序中邮件最开始设置了唯一的限制,导致电子邮件在此集合中无法重复插入,现在想要移除独特的限制。
db.your_collection.dropIndexes ();
以上是“猫鼬设置独特不生效怎么办”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!