mongoose for node.js
먼저 MongoDB와 node.js 설치를 설치한다.
$ npm install mongoose
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
// 접속됨
}
Mongoose에서 모든것은 Schema로 부터 파생된다.
예제)
var kittySchema = mongoose.Schema({
name: String
});
String값을 가질 name 프로퍼티를 가진 스키마를 얻었다. 다음 단계는 우리의 스키마를 Model로 컴파일하는 것이다.
var Kitten = mongoose.model('Kitten', kittySchema);
모델은 documents를 생성해줄 클래스이다. 이 경우, 각 document 는 스키마에 정의된 프로퍼티와 행동들을 가지는 kitten 일 것이다. 예로 길고양이 kitten document를 만들어보자.
var silence = new Kitten({ name: 'Silence' });
console.log(silence.name); // 'silence'
Kittens는 울음낼수잇다. 어떻게 speak 함수를 우리 documents에 추가하는지 알아보자.
// NOTE: 메소드는 스키마에 추가되어야만한다. mogoose.model()과 컴파일되기 전에
kittySchema.methods.speak = function () {
var greeting = this.name
? "Meow name is " + this.name
: "I dont have a name";
console.log(greeting);
}
var Kitten = mongoose.model('Kitten', kittySchema);
스키마의 methods 프로퍼티에 추가된 함수들은 Model 프로토타입으로 컴파일되고 각 document 인스턴스에 노출된다.
var fluffy = new Kitten({ name: 'fluffy' });
fluffy.speak(); // "Meow name is fluffy"
우리는 말하는 kittens를 얻엇다. 그러나 여전히 MongoDB에 아무것도 저장하지 못햇다. 각 document 는 save 메소드를 통해 데이터베이스로 저장될 수 있다. 첫번째 인자 to the callback은 error이다. 어떤게 일어나면.
fluffy.save(function (err, fluffy) {
if (err) return console.error(err);
fluffy.speak();
});
모든 키튼 찾기
Kitten.find(function (err, kittens) {
if(err) return console.error(err);
console.log(kittens);
})
키튼을 이름으로 필터링하고싶다면 Mongoose는 MongoDB의 ㅈquerying syntax를 제공한다.
Kitten.find({name: /^Fluff/ }, callback);
Fluff로 시작하는 name 을 조회하고 결과 배열을 callback으로 반환한다.
---------------------------------
var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test'); var Cat = mongoose.model('Cat', { name: String }); var kitty = new Cat({ name: 'Zildjian' }); kitty.save(function (err) { if (err) { console.log(err); } else { console.log('meow'); } });
-----------------------------------------
몽고디비의 기본개념을 알고 시작하자