mongoose
MongoDB ODM( Object Document Model )
RDMS ์ ORM์ด ์๋ค๋ฉด MongDB์ ODM
MongoDB์ ์คํค๋ง๊ฐ ์๊ธฐ ๋๋ฌธ์ ์คํค๋ง๋ฅผ ์ ์ฉ ํ ์ ์๊ฒ ํด์ค๋ค
์ฆ, ๋ฌธ์๋ฅผ DB์์ ์กฐํํ ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ก ๋ฐ๊ฟ์ฃผ๋ ์ญํ
์คํค๋ง
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ตฌ์ฑํ๋ ๋ ์ฝ๋์ ํฌ๊ธฐ, ํค(key)์ ์ ์, ๋ ์ฝ๋์ ๋ ์ฝ๋์ ๊ด๊ณ, ๊ฒ์ ๋ฐฉ๋ฒ ๋ฑ์ ์ ์ํ ๊ฒ
RDMS์ ๊ฒฝ์ฐ id, userid, point ๋ฑ์ ์ ์๋ ํ๋์ ๋ง๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ ๊ทธ๋ฌ๋ MongoDB๋ insert๋๋ง๋ค ๋ฃ๋ ์์์ ๋ฐ๊ฟ์ ์์
์ฅ์
ํ๋์ ๋ชจ๋ธ์ ์ ํด ๋๊ณ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅ( ๋ค๋ฅธ๊ณณ์ ์ฌ์ฉ์ postmodel๋ง ๋ถ๋ฌ์ค๋ฉด ๋๋ค. )
๋ชจ๋ธ์ ์ ์ฅ ์ ์ซ์ ๋๋ ํ์ฉ ๋ฌธ์์ด์ ์ ํ ์ ์๋ค. ( validator ์ ์ฉ )
์ฌ์ฉ๋ฒ
mongoose ํจํค์ง import
Schema ๋ฐ์์จ๋ค
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
mongoose ๋ฐ MongoDB์ ์
var mongoose = require('mongoose');
var autoIncrement = require('mongoose-auto-increment');
// mongoose ์ mongoose-auto-increment
// (insert ์๋ง๋ค primary ํค ๊ฐ 1์ฉ ์ฆ๊ฐ )
var db = mongoose.connection; //์ ์
db.on( 'error' , console.error ); //์๋ฌ์ ๋ก๊ทธ๋ฅผ ๋ฟ๋ฆผ
db.once( 'open' , function(){
console.log("MongoDB connect");
}); //์ ์ ์ฑ๊ณต์ ์ฝ์์ ๋ฉ์์ง ์ถ๋ ฅ
var connect = mongoose.connect('mongodb://127.0.0.1/post');
//post ๋ผ๋ DB ๋ฐ collection์ ์์ฑ , ์ ์
autoIncrement.initialize(connect;
//primary Key ์๋ ์ฆ๊ฐ ํ๋ฌ๊ทธ์ธ ์ค์
var PostModel = require('../models/ProductsModel);
// ํด๋น ๋ชจ๋ธ์ ๋ถ๋ฌ์จ๋ค
// save
var product = new ProductsModel({ // ์คํค๋ง์์ ์ง์ ํ ํ๋๋ช
์ ์ผ์นํ๊ฒ ์ง์
name : req.body.name,
price : req.body.price,
description : req.body.description,
});
product.save( function(err){ // ๊ทธ๋ฆฌ๊ณ ์ ์ฅํ๋ค.
});
// find ๊ฒ์ํ ๋ฆฌ์คํธ๋ฅผ ๋ฐ๋๋ค.
Model.find( { id : 1000 } , function(err, posts){
console.log(posts);
});
// findOne ๊ฒ์์กฐ๊ฑด๊ณผ ์ผ์นํ๋ ํ์ค๋ง ๋ฐ๋๋ค.
Model.findOne( { id : 1000 } , function(err, post){
console.log(post);
});
// update
ProductsModel.update(
{ id : req.params.id} , // ์กฐํ์กฐ๊ฑด
{ $set : query }, // ์คํค๋ง์ ์ผ์นํ๊ฒ ์์ฑ
function(err){} // ์ฝ๋ฐฑํจ์ ์์ฑ
);
// remove
ProductsModel.remove(
{id : req.params.id}, // ์กฐํ์กฐ๊ฑด
function(err){ // ์ฝ๋ฐฑํจ์
});
Last updated
Was this helpful?