카테고리 없음

mongoose for node.js

Gwnduke's 2016. 3. 22. 15:00

먼저 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'); } });



-----------------------------------------





몽고디비의 기본개념을 알고 시작하자