RESTful API를 위해.. 수정 기능인 경우에는 PUT을 사용해주는게 좋은데, 이전에는 form태그에서 get과 post밖에 사용할 수 없는 상태여서 post 요청을 했던 상황이었다.
이번에 공부를 더 하게 되며 PUT과 DELETE 요청을 하는 방법에 대해서 알아보았다.
터미널 창을 열어 npm install method-override 입력하여 다운

server.js서버 파일에 셋팅 코드 추가

const methodOverride = require("method-override");
app.use(methodOverride("_method"));
설치 및 셋팅을 끝냈으면 사용해보자.
앞의 포스팅에 작성하던 코드를 다시 가져와서 사용하면 좋을 것 같다.
edit.ejs파일로 돌아가 form태그에 method는 POST를 그대로 두되, action부분을 아래와 같이 수정해준다.action="/edit?_method=PUT"

이렇게 작성해주면 POST가 아니라 PUT요청으로 사용될 수 있다.
server.js로 돌아와서 app.post로 작성했던 부분을 app.put으로 수정해보고 테스트해보자

여기서 like가 우리가 자주 사용하는 "좋아요👍"의 수를 의미한다고 했을 때, like에 +1을 더해보자
$set을 사용해서 덮어쓰기를 했는데, 값에 증감을 위해서는 $inc를 사용해주면 된다.await db.collection("post").updateOne({ _id: 1 }, { $inc: { like: 1 } });
이렇게 코드를 작성했으면 _id가 1인 데이터의 like값에 +1을 해준다는 의미이다.

이렇게 해놓고 한 번 테스트를 해보자.

like의 값이 10에서 11로 증가되어 있다!
$mul : 기존의 값에 *(곱하기) 곱셈
$unset : 필드값 삭제
updateMany()를 사용하여 여러 개의 document를 수정할 수 있다.
만약 like 항목이 10 이상인 document를 전부 수정하고 싶은 경우라면
{ like : {$gte : 10} }
이렇게 $gt를 사용하여 like > 10을 표시하거나, 이상이라면 $gte를 사용하여 표시할 수 있다.
동일하게, 이하의 경우 $gte를 사용하며 미만의 경우 $gt를 사용해준다.
만약 10이 아닌 것만 필터링 하고 싶은 경우는 $ne를 사용해주자.
- document 하나 수정:
updateOne()- document 여러개 수정:
updateMany()- 수정방법 결정:
$set: 덮어쓰기$inc: 증감
updateMany()사용 시 필터링 가능
$gt: 초과$gte: 이상$lt: 미만$lte: 이하$ne: 같지않음
- 서버에 정보가 없는 경우에는 유저에게 보내라고 하거나 DB출력
method-override를 사용하여 form태그에서 PUT/DELETE 요청가능