mongoose设置unique不生效问题的解决及如何移除unique的限制


Posted in Javascript onNovember 07, 2017

前言

unique属于schema约束验证中的一员,他的作用主要就是让某一个字段的值具有唯一性(不能重复)

保持字段的唯一性使用type值: {type:String,unique:true,dropDups: true}

注意:mongoose一旦修改了数据存储的机构,数据库一定要重启,很多新手在设置一些属性不生效时都是这个原因

这里说的重启,不是简单的关闭mongoose数据库服务器重新打开,而是先将该数据库整个删除,然后再重启数据库服务

简单的schema特殊用法示例

//导入模块

var mongoose = require('mongoose');

//连接数据库
mongoose.connect('mongodb://localhost/itheima');

//创建schema

//schema第一个参数是我们自定义的数据类型 第二个参数是管理schema默认的数据类型
var studentSchema = mongoose.Schema({
 name:{type:String,required:true},//数据类型为string,不能非空
 age:{type:Number,default:18},//数据类型为string,默认值18
 study_id:{type:Number,select:true},//学号,默认查询字段
 address:{type:String,lowercase:true},//地址,默认小写
 email:{type:String,match:RegExp(/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/)},//邮箱,正则表达式验证
 phone:{type:String,unique:true,dropDups: true}//电话号码唯一性
},{
  versionKey: false,//去掉版本锁 __v0

 timestamps: { createdAt: 'createTime', updatedAt: 'updateTime' }//自动管理修改时间

});

//创建model

var student = mongoose.model('student',studentSchema);

//创建Entity

var zhangsan = new student({
 name:'zhangsan',//名字必须要有,否则会报错: name: Path `name` is required.
 address:'ZhongLiang',//字符串都会变成小写
 email:'a12345@qq.com',//邮箱格式不对,添加会报错 Path `email` is invalid (a12345qq.com).
 study_id:2017001,
 phone:'123456789'//在添加唯一性字段时,mongoose会先查询数据库所有的phone值,一旦发现该值已存在则会报错
});

//添加数据



student.create(zhangsan,function(err){

 if(err){
  throw err;
 }

 console.log('插入成功' + zhangsan);

});

Mongoose 移除unique的限制

程序中email最开始设置了unque限制,导致email在此collection中无法重复插入,现在想要移除unique限制。

db.your_collection.dropIndexes();

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
拖动Html元素集合 Drag and Drop any item
Dec 22 Javascript
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
Jan 22 Javascript
jQuery 幻灯片插件(带缩略图功能)
Jan 24 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
Mar 21 Javascript
如何将一个String和多个String值进行比较思路分析
Apr 22 Javascript
EasyUI中combobox默认值注意事项
Mar 01 Javascript
在for循环中length值是否需要缓存
Jul 27 Javascript
JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案
Jul 27 Javascript
重新理解JavaScript的六种继承方式
Mar 24 Javascript
vue轻量级框架无法获取到vue对象解决方法
May 12 Javascript
JS实现移动端双指缩放和旋转方法
Dec 13 Javascript
JS localStorage存储对象,sessionStorage存储数组对象操作示例
Feb 15 Javascript
vue组件父与子通信详解(一)
Nov 07 #Javascript
vue组件父子间通信之综合练习(聊天室)
Nov 07 #Javascript
Mint UI 基于 Vue.js 移动端组件库
Nov 07 #Javascript
vue中SPA单页面应用程序详解
Nov 07 #Javascript
vue-router实现组件间的跳转(参数传递)
Nov 07 #Javascript
详解Vue路由钩子及应用场景(小结)
Nov 07 #Javascript
Vue-Router实现组件间跳转的三种方法
Nov 07 #Javascript
You might like
php 图片上添加透明度渐变的效果
2009/06/29 PHP
PHP模板引擎Smarty自定义变量调解器用法
2016/04/11 PHP
thinkPHP中钩子的两种配置调用方法详解
2016/11/11 PHP
PHP框架自动加载类文件原理详解
2017/06/06 PHP
phpstudy后门rce批量利用脚本的实现
2019/12/12 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
JavaScript让IE浏览器event对象符合W3C DOM标准
2009/11/24 Javascript
基于JavaScript自定义构造函数的详解说明
2013/04/24 Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
2014/04/12 Javascript
DOM基础教程之事件对象
2015/01/20 Javascript
jquery实现标签支持图文排列带上下箭头按钮的选项卡
2015/03/14 Javascript
javascript中return,return true,return false三者的用法及区别
2015/11/17 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
ajax跨域调用webservice的实现代码
2016/05/09 Javascript
JavaScript判断页面加载完之后再执行预定函数的技巧
2016/05/17 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
2017/04/14 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
Angularjs上传图片实例详解
2017/08/06 Javascript
基于对象合并功能的实现示例
2017/10/10 Javascript
快速了解vue-cli 3.0 新特性
2018/02/28 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
2018/03/02 Javascript
如何获取vue单文件自身源码路径
2019/05/06 Javascript
微信小程序页面滚动到指定位置代码实例
2019/09/07 Javascript
vue 中几种传值方法(3种)
2019/11/12 Javascript
JavaScript字符和ASCII实现互相转换
2020/06/03 Javascript
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
python基础教程之自定义函数介绍
2014/08/29 Python
详细讲解Python中的文件I/O操作
2015/05/24 Python
Python 修改列表中的元素方法
2018/06/26 Python
python文件和文件夹复制函数
2020/02/07 Python
python图形开发GUI库wxpython使用方法详解
2020/02/14 Python
Python如何把十进制数转换成ip地址
2020/05/25 Python
银行求职自荐信范文
2015/03/04 职场文书
2015年计划生育协会工作总结
2015/05/13 职场文书