TL;DR
MongoDB에서 Schema Validation으로 필드(컬럼) 추가를 방지 하는 방법입니다.
IT Journeyman
MongoDB에서 Flexible Data Model은 장점입니다. 그러나 Pilot이나 Prototype 혹은 개발 단계를 지나서 통합 테스트 혹은 운영 모드에서는 자유로운 필드 추가를 금지하여 DBA가 관리하게 하는 것도 데이터 모델의 안정성 측면에서 필요합니다. 그럴 때 이 설정을 사용하시면 됩니다.
1. 첫 번 째 문서 생성

2. Schema Validation 설정
db.runCommand({
collMod: "users",
validator: {
$jsonSchema: {
bsonType: "object",
required: ["name", "email"],
properties: {
name: {
bsonType: "string",
description: "must be a string and is required"
},
email: {
bsonType: "string",
pattern: "^.+@.+$",
description: "must be a string and match the regular expression pattern"
}
},
additionalProperties: false // 이 설정으로 정의되지 않은 필드가 추가되는 것을 방지.
}
},
validationLevel: "strict" // 검증 수준을 설정 (strict: 모든 문서에 적용)
});
3. 필드 추가 시 에러
