Mongoose Schema , Mongoose Model 이란 무엇인가?

Schemas & model


Mongoose를 사용한다는 것은, Schema를 사용한다는 뜻이다.


그렇다면 Schema란 ? 
  •   MongoDB document를 맵핑해주는 것이다.
  •   model을 만들 때 Rule이라고 할 수 있다. (MySQL의 table definition과 유사하다.)

Schema는 Javascript object와 같이 key - value pair을 이룬다.
여기서 key는 property name이고, value는 Mongoose SchemaType 이다.
데이터베이스에서 document가 retrieved 되면 ,
Mongoose는 그 value를 SchemaType으로 변환하고 model object를 반환한다.


SchemaTypes 에는 다음과 같은 것들이 있다.
  • String
  • Number
  • Date
  • Buffer
  • Boolean
  • Mixed
  • ObjectId
  • Array


Schema 사용예제
var mongoose = require('mongoose'); // 일단 mongoose를 require 해준다.
var Schema = mongoose.Schema; // mongoose.Schema 를 'Schema'라는 변수에 저장.
var UserSchema = new Schema({ //Schema는 new Schema로 선언해주고 object를 넣어준다.
username:{type:String,unique:true}, // unique:true 는 unique index를 선언함을 뜻한다.
email:String,
color:String,
hashed_password:String
});
mongoose.model('User',UserSchema); // ???



mongoose.model 은 또 무엇인가? 
  • mongoose.model(modelName,schema);
우리가 만든 schema definition를 사용하기 위해서는, Model로 변환해야 한다.
그렇게 해야 우리가 이를 이용해서 작업을 할 수 있다.
즉, 우리가 위에서 만들었던 UserSchema definition을 사용하기 위해서는 
mongoose.model('User',UserSchema); // 이렇게 model로 바꿔주는 작업이 필요하다.