게시판 다음 글로 넘어가기

이태규·2021년 12월 29일
0

express

목록 보기
8/28
router.get('/prevno', async function(req,res,next){
    try{
        const no = Number(req.query.cno); // 현재의 no
        const dbConn = await db.connect(dbUrl)
        const coll = dbConn.db("db202").collection("board");
        const result = await coll.find(
            //미만 {$lt: }    <
            //이하 {$lte: }   <=
            //초과 {$gt: }    >
            //이상 {$gte: }   >=
            //$set  $and $or $는 명령어임
            // json에 붙이면 오류가 나서
            {_id : {$lt : no}}, //조건 만들기
            {projection : {_id : 1}}  //필요한 항목만 가지고 오기(_id만)
        ).sort({_id: -1}).limit(1).toArray();
        // find를 쓰면 toArray로 변환을 시켜야 한다.

        console.log('board.js/preveno ' ,result)
        if(result.length ===1){
            return res.send({status: 200, no : result[0]._id})
        }
        return res.send({status:200, no : 0})
    }
    catch(err){
        console.error(err)
        return res.send({status: -1, result : err})
    }
})

projection이란?

쿼리의 결과값에서 보여질 field를 정하는건데요, 꽤나 간단합니다. 예제를 통해 배워볼까요?

예제12: article의 title과 content 만 조회

db.articles.find( { } , { “_id”: false, “title”: true, “content”: true } )

db.articles.find( { } , { "_id": false, "title": true, "content": true } )
{ "title" : "article01", "content" : "content01" }
{ "title" : "article02", "content" : "content02" }
{ "title" : "article03", "content" : "content03" }

profile
한 걸음씩 나아가자

0개의 댓글