반응형
mongoDB
몽고디비는 NoSQL 도큐먼트형 데이터 베이스이다.
데이터를 도큐먼트 단위로 저장하며
따로 테이블을 작성하지않아도 원하는 필드와 값을 넣을 수 있다.
//한개의 도큐먼트
{
name:"noodler",
email:"email@gmail.com",
favorite:"fishing"
}
Mongoose
mongoose는 NodeJS와 mongoDB 사이를
연결해주는 ODM(Object Document Mapper)이다.
Schema를 지원해(mongoDB에는 없음)
객체지향구조를 보장하고 mongoDB의 CRUD를 지원한다.
mongoose.Schema
mongoDB의 도큐먼트 안에 어떤 값이든 들어갈 수 있다.
하지만 name에 숫자만 입력하거나 중복된 email 주소를 입력하는등
예상치 못한 입력을 방지하고
일관성을 유지하기 위해 스키마를 사용한다.
또한 메소드도 선언할수있어서 클래스 정의랑 비슷한 역할을 한다
const mongoose = require("mongoose");
const {Schema} = mongoose;
const userSchema = new Schema({ //Schema 생성
name: {
type:String, //String type만 입력받음
required
},
email: {
type:String,
unique, //중복 방지 속성
required
}
})
userSchema.methods.getName = function(){ //메소드 생성
let user = this; // getName을 호출한 인스턴스를 가리킴
return user.name;
}