ORM
ORM은 Object-Relational Mapping의 약어이다.
전통적으로는 프로그램이 db를 조작하기 위해서는 명령어(DB query string)를 생성하여 db에 명령을 주고 결과를 받았다. 그 뒤로는 db를 프로그램 객체에 연결하여 사용하는 것이 orm
예를 들어 db에 student라는 리스트(table,collection)이 존재하고 거기 안에 name,age가 있다. 이 리스트를 orm으로 불러오면 name,age의 항목을 가진 student object 의 배열이 생성되어 리스트를 읽는 것뿐만 아니라 리스트를 수정한 후 db에 그대로 저장할 수 있다.
orm은 db 데이터와 프로그램의 object를 연결하면 db와 프로그래머 사이의 중간 역할을 한다. 직접 명령하지 않고 ㅇ녀결된 객체의 함수를 사용해서 db에 명령을 내린다.
장점: 프로그래머가 db언어 몰라도 db에 명령내릴수 있다.
단점: db에 직접 명령을 내리지 않고 한단계 거치기 때문에 느리다.
orm이 지정해 놓은 명령만 가능. 속도가 느려지지만 사람이 느끼지 못할정도다. 하지만 수천,수만개의 데이터를 처리하거나 db 속도가 중요하면 orm을 사용하지 않는다.
Model : orm은 프로그램이 db를 객체에 연결하는 것 자체를 뜻하면 model은 이때 연결된 객체이다. stduent object가 모델이다.
Shema는 모델의 대상에 대한 구체적인 구조를 뜻한다. student 모델의 name,age를 스키마라고한다.
mongoose는 orm을 사용하게 해주는 library이다.
var studentSchema = mongoose.Schema({
name: {type:String, required:true},
age: {type:Number, required:true} });
var Student = mongoose.model('student',studentSchema);
schema는 model의 구조및 설정이고, model은 실제 db에 접근할 수 있는 객체이다. Model 객체는 주로 첫글자를 대문자로 사용한다.