(이녀석이 아니다.)
Mongoose ?
Node.js 에서는 MongoDB 에 접근하여 데이터를 사용할 수 있게 해주는 모듈들이 몇가지 있다.
대표적으로 mongodb-native 나 mongoose 등이 있다.
해당 모듈들은 모두 mongodb의 기능을 성실히 수행하여 주지만, 각각의 특징점들이 있다.
mongodb-native 는 이름에 native에서 알 수 있듯이, 다른 추가적인 기능보다는 mongodb 본연의 특징을 사용하도록 해준다.
mongoose는 조금 더 기능들이 추가되었다.
기능들이 추가된다는 것은, 속도는 저하된다는 말과 거의 같다.
다양한 기능들로 편의성을 높였으나, mongodb-native와 비교하자면 그 속도가 조금 떨어지는 것이 사실이다.
그럼에도 Mongoose가 가장 많이 쓰이는 모듈 중에 하나인 것은 명확하게 object들을 만들고, 그것과 data를 묶어서 사용하는
ODM(Object Data Mapping) 의 특성에 기인한다.
Mongoose는 데이터를 만들고 관리하기 위하여 Schema 를 만들고, 그 Schema로 Model을 만든다.
스키마와 컬럼의 제한에서 벗어난 MongoDB이지만, Mongoose는 오히려 그 장점을 다시 가져왔다.
스키마와 모델을 만드는 것을 통하여, data를 불러온 후에 그 데이터를 객체화시키는 데에 빠르고, 그 객체를 수정함으로써 데이터에 수정을 할 수 있게 해준다.
또한 분명하게 모델링된 문서(Documents)들이 모여 있는 Collection을 관리하는것도 수월해진다는 장점이 있다.
Mongoose 설치
npm install mongoose --save
우리에겐 NPM이 있다.
그저 설치해주면 끝난다.
1 | var mongoose = require('mongoose') | cs |
파일 내부에선 위와 같이 모듈을 불러오면 바로 사용할 수 있다.
1 2 | mongoose.connect('mongodb://localhost/dalkom'); var Schema = mongoose.Schema; | cs |
이후에 1번 코드는 접속할 호스트 / DB 이름을 입력해준다.
2번 은 다음 장에서 만들 스키마를 만들기 위하여, mongoose의 스키마 객체를 옮겨 담는 것이다.
위 코드를 통해서 Schema 객체를 통해서 스키마를 만들 수 있다.
Schema / model
Mongoose는 들어갈 데이터가 지닌 속성의 타입을 지정해준 뒤에 집어넣어준다.
이 속성의 타입을 지정해주는 것이 스키마 이다.
이 지정된 스키마로 객체를 만들고, 그 객체를 문서화하여 컬렉션에 저장해주는 역할을 모델 이 한다.
1 2 3 4 5 6 7 | var userid = new Schema({ id : String, password : String, name : String }) var Userid = mongoose.model('userid', userid); | cs |
위와 같은 방식으로 선언을 한다.
위의 부분이 스키마를 선언하는 것이고,
아래 부분이 model을 선언하는 것이다.
이렇게 모델과 스키마를 지정 후에 ,
1 2 3 4 5 6 | var newUser = new Userid({id: 'dalkom', password: 'itworld', name: 'yangd'}); newUser.save(function(err){ if(err){ return err; } }) | cs |
위와 같이 모델을 통해 객체를 만든 후에, save 함수를 통하여 mongodb에 문서를 저장할 수 있다.
따로 컬렉션은 만들지 않아도, 새로운 정보가 들어가면 해당 DB에 컬렉션이 자동으로 만들어진다.
위와 같은 코드를 실행하면, 실제로 mongodb에 저장이 되는 것을 볼 수 있다.
계속해서 몽구스에 관한 포스팅을 하도록 하겠다.