express 일괄 삭제

이태규·2021년 12월 31일
0

express

목록 보기
13/28
//물품 일괄 삭제 : http://localhost:3000/item/deletebatch
router.delete('/deletebatch', async function(req,res,next){
    try{
        console.log(req.body)

        let arr = [] //[{}, {}, {}]가 목표가 아니다 [1,2,3]이 목표임
        for(let i=0; i < req.body.length; i++){
            arr.push(req.body[i].code)
        }
        // const code = Number(req.query.code);
        // [{"code" : 10001}, {"code": 10002}, {"code" : 10003}]
        // req.body[0].code , req.body[1].code

        // {code : [10001, 10002, 10003]}
        // req.body.code[0]. req.body[1]

        // DB접속 > DB선택 > 컬렉션(board) > 1개 가져오기
        console.log("----------------------------------")
        console.log(arr)
        console.log("----------------------------------")
        const dbConn = await db.connect(DBURL)
        const coll = dbConn.db(DBNAME).collection("item");
        
        
        const result = await coll.deleteMany({
            _id: {$in : arr}
        });
        console.log(result)

        if(result.deletedCount === req.body.length){
            return res.send({status: 200})
        }
        return res.send({status : 0})
    
    }
    
    catch(err){
        console.error(err);
        return res.send({status: -1, result : err})
    }
});

일괄삭제를 해주기 위해서는

const result = await coll.deleteMany({
            _id: {$in : arr}
        });

{$in : [0,1,2] } 와 같은 형태로 들어가야 한다.
기존 [ {}, {}, {} ]의 형태가 아니다.
그래서 반복문에서 위의 형태로 만들어서 들어가야 한다.

profile
한 걸음씩 나아가자

0개의 댓글