티스토리 뷰

Server/Node.js

[Node.js] auto increment; 글 번호를 달자

공부하는 승승 2023. 7. 14. 00:15

: DB에 항목을 추가할 때마다 자동으로 1씩 증가시켜서 저장

 

 

- DB에서 counter란 컬렉션 생성

 

- 게시물갯수란 이름과 총 갯수를 저장할 totalPost 추가

 

<server.js>에서 새 게시물 등록 시 totalPost의 값을 +1로 변경

app.post('/add', function(요청, 응답){
    응답.send('전송완료')
    
    // 1. DB.collection 내의 총 게시물갯수를 찾음
    db.collection('counter').findOne({name: '게시물갯수'}, function(에러, 결과){
        console.log(결과.totalPost)

        // 2. 총 게시물갯수를 변수에 저장
        var 총게시물갯수 = 결과.totalPost;

        // 3. DB.collection에 새 게시물을 기록
        db.collection('post').insertOne({ _id: 총게시물갯수 + 1, title: 요청.body.title, date: 요청.body.date}, function(에러, 결과) {
            console.log('저장완료');
            
            // 4. counter란 collection에 이름이 게시물갯수인 것을 찾아서 totalPost란 항목을 1 증가시킴
            // db.collection('counter').updateOne({어떤데이터를 수정할지}, {수정값}, function(){})
            db.collection('counter').updateOne({name: '게시물갯수'}, { $inc : {totalPost: 1}}, function(에러, 결과){
                if (에러) {
                    return console.log(에러);
                }
            })
        });

        /* 
            operator 
            - $set : 변경
            - $inc : 증가
            - $min : 기존값보다 적을 때만 변경
            - $rename : key값 이름 변경
            ...
        
        */

    });
});
댓글