>  기사  >  웹 프론트엔드  >  고유 제한을 제거하는 방법

고유 제한을 제거하는 방법

php中世界最好的语言
php中世界最好的语言원래의
2018-04-14 16:57:192212검색

이번에는 고유 제한을 제거하는 방법을 가져오겠습니다. 고유 제한을 제거할 때의 주의 사항은 무엇인가요?

머리말

Unique는 스키마 제약 조건 확인의 멤버입니다. 주요 기능은 특정 필드의 값을 고유하게 만드는 것입니다(반복할 수 없음)

필드 사용 유형 값의 고유성을 유지하려면: {type:String,unique:true,dropDups: true}

참고: 몽구스에서 데이터 저장 메커니즘이 수정되면 데이터베이스를 다시 시작해야 합니다. 이것이 많은 초보자가 적용되지 않는 일부 속성을 설정하는 이유입니다

여기서 말하는 재시작은 단순히 몽구스 데이터베이스 서버를 닫았다가 다시 시작하는 것이 아니라, 데이터베이스 전체를 먼저 삭제한 후 데이터베이스 서비스를 다시 시작하는 것입니다

간단한 스키마 특수 사용 예

//导入模块
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는 고유한 제한 사항을 제거합니다

프로그램의 이메일은 처음에 고유한 제한을 설정하여 이메일이 이 컬렉션에 반복적으로 삽입되는 것을 방지했습니다. 이제 고유한 제한을 제거하고 싶습니다.

db.your_collection.dropIndexes();

이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 자료:

JS는 네비게이션 바의 투명한 그라데이션을 구현합니다

Node의 모듈 시스템 사용에 대한 자세한 설명

Bootstrap에서 테이블을 작동하는 방법

위 내용은 고유 제한을 제거하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.