NodeJs mongoose 라이브러리를 활용한 mongodb 통신
세팅하기
- mongoose 설치
npm install mongoose - mongoose 임포트 해주기
var mongoose = require('mongoose'); - 몽구를 이용하여 db 연결
mongoose.connect('mongodb://username:password@host:port/database?options...');mongoose를 활용한 nodeje mongodb 연결
ObjectId 이용하기
mongoose.Types.ObjectId(req.params._id)
Model을 사용하여 update 하기
Apply.update({_id:saved_id},req.body,{upsert:true},function(err,docs){
if(err){
console.log(err);
res.sendStatus(500);
}else{
res.sendStatus(200);
}
})
$inc 를 활용하여 increase 하기
{% raw %}
router.put('/currentNum/:quantity',function(req,res){
console.log("스케줄 증가 처리 req.body:", req.body);
Schedule.findOneAndUpdate({day:req.body.day, time:req.body.time},{$inc:{currentNum:req.params.quantity}},{new:true},function(err,doc){
if(err){
console.log(err);
res.sendStatus(500);
}else{
}
})
})
{% endraw %}
없으면 create하고 있으면 update하기
router.put('/',function(req,res){
console.log("스케줄 업데이트 처리 req.body:", req.body);
delete req.body._id;
Schedule.findOneAndUpdate({day:req.body.day, time:req.body.time},req.body,{upsert:true},function(err,docs){
if(err){
console.log(err);
res.sendStatus(500);
}else{
res.sendStatus(200);
}
})
})
upsert: true 항목을 추가한다.
$or를 활용하여 or 서치하기
ar userExists = function(u, callback) {
User.find({$or:[ {'username': u.username}, {'email': u.email}]} , function(err,user) {
if (err || user.length > 0) { // user does not come back null, so check length
callback(1);
return;
}
//no error, no user
callback(0);
});
};