• 技术文章 >web前端 >js教程

    移除unique限制的方法

    php中世界最好的语言php中世界最好的语言2018-04-14 16:57:19原创1085
    这次给大家带来移除unique限制的方法,移除unique限制的注意事项有哪些,下面就是实战案例,一起来看一下。

    前言

    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();

    相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

    推荐阅读:

    JS实现导航栏的透明渐变

    Node的模块系统使用详解

    在Bootstrap里怎么操作table

    以上就是移除unique限制的方法的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:unique 方法 限制
    上一篇:JS实现导航栏的透明渐变 下一篇:vue父子组件通信使用方法
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• 浅显易懂的JavaScript引入• 聊聊Angular Route中怎么提前获取数据• 深入解析NodeJS中的进程管理• node.js gm是什么• webpack是基于node.js的吗
    1/1

    PHP中文网