본문 바로가기

WEB

Node.js로 웹서비스 만들기 10일차

DB에 업데이트 할때 오퍼레이터를 사용해야 한다고 한다.

 

 

 

 

 

operator의 종류

$set (변경) - 바꿔주세요

$inc (증가) - 증가시켜주세요

$min (기존값보다 적을 때만 변경)

$rename (Key값 이름 변경)

 

db.collection('counter').updateOne({name:'게시물갯수'}, { $inc : {totalPost:1} });

카운터 라는 컬렉션에서 name이 게시물갯수인 문서의 totalpost를 1 증가시켜주세요.

 

 

DB에 업로드 해보자

 

//server.js

app.post('/add', function(req, res){
    res.send('전송완료');
    var title = req.body.title;
    var date = req.body.date;

    db.collection('counter').findOne({name:'게시물갯수'},function(error, res){        
        var totalcount = res.totalPost;

        db.collection('post').insertOne( {_id : totalcount + 1, 제목 : title, 날짜: date} , function(error, res){
            console.log('저장완료');
            db.collection('counter').updateOne({name:'게시물갯수'}, { $inc : {totalPost:1} }, function(err, res){
                if(err){return console.log(err)}
            });
        });
        

    });

    
});

/add 라는 경로로 post 요청을 하면

'전송완료' 라고 화면에 띄워주고

'counter'라는 컬렉션에서 name이 게시물갯수인 문서의 totalPost 값을 totalcount라고 정해놓고

'post'라는 컬렉션에 _id는 totalcount+1 / 제목은 네임이 title인 인풋에 입력한 값 / 날짜는 네임이 date인 인풋에 입력한 값을 한개 인서트(추가) 할거야

이상 없이 추가가 되면 콘솔에 저장완료 라고 남겨주고

'counter'라는 컬렉션에도 업데이트 한개 할건데 네임이 게시물갯수인 문서의 totalPost를 1 증가 시킬거임($inc)

만약 에러가 났다면 에러 내용을 콘솔에 찍어줘라

 

post에 게시글 _id가 숫자로 표시되서 올라갔다

 

counter의 totalPost도 2로 되었다.