NodeJs mongoose 라이브러리를 활용한 mongodb 통신

세팅하기

  1. mongoose 설치 npm install mongoose
  2. mongoose 임포트 해주기 var mongoose = require('mongoose');
  3. 몽구를 이용하여 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);
  });
};

NPM mongoose package Document