[Mongoose.js] Mongoose 에서 Schema-Free 하게 사용하기

node.js 에서 MongoDB 를 사용하기 위해 사용하는 3rd-party 모듈인 Mongoose 는 가장 많이 쓰이는 MongoDB 모듈이다. MongoDB는 Schema-Free, 즉 미리 스키마를 정의할 필요가 없는 DBMS이다.

하지만, Mongoose 를 사용하면, 미리 스키마를 정의해놓고, 모델이란 것을 생성하여 콜렉션에 접근해야 한다. 하지만, 데이터 베이스를 작성할때, 미리 짜여진 틀 안에 갇혀있으면, 불편한게 이만 저만이 아니다.

게시물을 이미지, 텍스트, 비디오 등을 JSON처럼 구조화 시켜서 저장할 수도 있는 법인데, 이런것들은 미리 스키마를 정의해서 사용하기 어렵다. 즉, 우리는 Mongoose 에서도 Schema-Free 하게 사용하는 방법이 필요하다.

var testSchema = mongoose.Schema({
  text: String,
  image: String,
  video: String
}); //테스트 스키마

보통의 경우에는 이런식으로 스키마를 정의하게 된다.  하지만 text보다 image 를 먼저 넣고 싶은 경우도 있을것이고, audio 라는 항목을 새로 만들고 싶은 경우도 생길 것이다.

var testSchema = mongoose.Schema({
  text: String,
  image: String,
  video: String
}, { strict: false }); //테스트 스키마

이렇게, { strict: false } 객체를 인자로 넣어주면, 데이터를 집어 넣을때, 스키마의 틀에 갇히지 않고, 데이터베이스에 값을 저장할 수 있다.

You may also like...