BE/Node
[Mongoose] 스키마
Chars4785
2021. 9. 24. 11:10
var mongoose = require('mongoose');
mongoose.connect(url);//url => mongodb://localhost/collections
var exampleSchema = new mongoose.Schema({
name:{
type:String,
required:true
}
age:Number
number:Schema.Types.ObjectId
created:{
type:Date,
default:Date.now
}
binary:Buffer,
living:Boolean
mixed:Schema.Types.Mixed
array:[],
arrayNumber:[Number],
arrayString:[String]
});
var Data = mongoose.model('data',exampleSchema);
Data.name('lee');
Data.age(22);
Data.binary = new Buffer(0);
Data.living(true);
Data.array.push('array');
String:문자열
Number:정수
Schema.Types.ObjectId: 명시적으로 id 타입을 사용할 때는 이렇게 사용해야 합니다. 그리고 스키마에 정의를 안 해도 자동적으로 몽고에서는 생성합니다. 행을 구분하는 아이디 값으로 사용합니다.
Date:날짜를 나타냅니다.
Buffer:바이너리 타입을 사용할 때 사용합니다.
Boolean:참과 거짓만 값을 저장하고 나타냅니다.
Schema.Types.Mixed:이름 그대로 다양한 타입을 저장할 수 있습니다. 객체나 배열 JSON으로 사용합니다. 타입이 없다고 생각해도 됩니다.
Array:[] 사용으로 배열로 사용합니다. [Number] 정수 배열이라고 생각하시면 됩니다.
var exampleSchema = mongoose.Schema({
firstName:{
type:String,
required:true,
trim:true,
lowercase:true
},
lastName:{
type:String,
trim:true,
lowercase:true
}
age:{
type:Number,
required:true,
}
created:{
type:Date,
default:Date.now
},
number:{
type:Number,
match:/^\d{3}-\d{3,4}-\d{4}$/
},
password:{
type:String,
validate:[
function(password){
return password&&password.length>6;
},'비밀번호를 입력하거나 길이가 6보다커야합니다.'
]
},
author:{
type:Schema.Types.Id,
ref:'User'
}
});
required:꼭 입력해야 한다.
unique:다른 행과 중복되면 안 된다.
trim:공백을 제거합니다.(문자열 타입에 사용)
default:문서가 생성되면 기본값으로 저장됩니다.
lowercase:대문자를 소문자로 저장한다(문자열 타입)
match:정규식으로 저장하려는 값과 비교한다.
validate:함수로 개발자가 조건을 만듭니다.
set:값을 입력할 때 함수로 조건을 만듭니다.
get:값을 출력할 때 함수로 조건을 만듭니다.
ref:해당하는 모델을 참조할 때 사용한다.
참고