몽구스 고유 유효성 검사기
이 플러그인을 사용하는 방법 :
1) npm install --save mongoose-unique-validator
2) 스키마에서 다음 가이드를 따르십시오.
var mongoose = require('mongoose');
var uniqueValidator = require('mongoose-unique-validator');
exampleSchema.plugin(uniqueValidator);
3) 몽구스 방법
다음과 같은 방법을 사용할 findOneAndUpdate
때이 구성 개체를 전달해야합니다.
{ runValidators: true, context: 'query' }
ie. User.findOneAndUpdate(
{ email: 'old-email@example.com' },
{ email: 'new-email@example.com' },
{ runValidators: true, context: 'query' },
function(err) {
}
4) 추가 옵션
대소 문자를 구분하지 않음
스키마에서 uniqueCaseInsensitive 옵션을 사용하십시오.
ie. email: { type: String, index: true, unique: true, required: true, uniqueCaseInsensitive: true }
사용자 지정 오류 메시지
ie. exampleSchema.plugin(uniqueValidator, { message: 'Error, expected {PATH} to be unique.' });
이제 mongo를 다시 시작하거나 데이터베이스를 삭제하거나 색인을 생성하는 것에 대해 걱정하지 않고 고유 속성을 스키마에 추가 / 삭제할 수 있습니다.
주의 사항 (문서에서) :
문서가 데이터베이스에 있는지 확인하기 위해 비동기 작업에 의존하기 때문에 두 개의 쿼리가 동시에 실행되고 둘 다 0이 된 다음 둘 다 MongoDB에 삽입 될 수 있습니다.
컬렉션을 자동으로 잠 그거나 단일 연결을 강제하는 것 외에는 실제 솔루션이 없습니다.
대부분의 사용자에게 이것은 문제가되지 않지만 알아야 할 가장 중요한 경우입니다.