inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

남박사의 파이썬으로 실전 웹사이트 만들기

inserted_id 로 db에 값이 insert되었는지 확인 가능한데 update시에는 어떻게 확인 가능할까요?

371

가후

작성한 질문수 90

0

어느 영상인지 잘 기억은 안나는데

insert 내용을 x 로 받아서

inserted_id 로 인서트가 잘되었는지 확인 하는 내용이 있었습니다.

x.inserted_id 이런식으로요

 

 

갑자기 update할때는 inserted_id 처럼 업데이트 되었는지 확인할수 있는 방법이 있는지

너무 궁금해져서 구글에 찾아보니, 딱히 방법이 보이지 않는데,

혹시 확인할수있는 방법이 있는지 궁금해서 선생님께 문의드립니다.

 

python

답변 1

1

남박사

insert는 1개의 쿼리에 1개의 데이터가 1:1로 저장되는 형식인데 반해 update의 기능을 생각해보면 update는 쿼리 1개의 대상이 1개가 될 수 있고 다수 개가 될 수도 있습니다. 그렇기 때문에 기본적으로는 insert처럼 inserted_id 같은 id값을 반환하지 않습니다.

 

https://www.mongodb.com/docs/manual/reference/method/db.collection.update/#returns

위 링크는 몽고DB공식 문서의 내용인데 내용을 보면 update 함수는 WriteResult 객체를 반환한다 되어있고 WriteResult를 다시 살펴보면

WriteResult({
   "nMatched" : 1,
   "nUpserted" : 0,
   "nModified" : 1,
   "writeConcernError": {
     "code" : 64,
     "errmsg" : "waiting for replication timed out",
     "errInfo" : {
       "wtimeout" : true,
       "writeConcern" : {
         "w" : "majority",
         "wtimeout" : 100,
         "provenance" : "getLastErrorDefaults"
       }
   }
})

 

위와 같은 형식으로 생긴것을 확인 할 수 있습니다. 그래서 update후에는 nMatched값이나 nModified값을 통해 몇개의 데이터가 적용되었는지 정도를 확인 할 수 있습니다.

업데이트 후 반드시 id값을 통해 데이터의 수정 여부를 확인해야 한다면 테스트 해보진 않았지만 updateOne(), updateMany()함수에서 upsert옵션을 사용하여 반환된 값에서 upserted_id를 통해 확인이 가능할 것 같긴한데 upsert 옵션은 쿼리의 대상이 없으면 insert를 하기 때문에 이점을 참고하셔야 할듯 합니다.

 

 

iis 접속후 자동으로 로그인 창이 나오도록 설정이 기능한가요?

0

67

2

리스트 이동 시 창 에러 발생

0

79

1

배포후 회원 등록 후 로그인 에러...

0

76

2

내부 서버 오류

0

72

2

app.config["MONGO_URI"] = "mongodb://localhost:27017/pm_db"

0

55

2

DB 검색하면 데이터가 없습니다. 라고 나와요. 5시간을 찾아봐도 모르겠어서 문의드려봅니다.

0

51

1

몽고db studio3T를 깔았는데

0

57

2

flake8과 linter

0

75

3

500이 뜹니다.

0

59

2

첨부파일 삭제

0

67

2

검색기능 질문

0

63

2

google.py

0

67

2

Studio 3T에 DB insert가 되지 않는 문제를 해결하지 못하고 있습니다 ㅠ

0

85

3

혹시 전체 코드 공개되어 있나요?

0

97

1

join.html 의 form 태그값 을 member_join() 에서 처리못함.

0

105

1

google.py 몽고db 샘플데이터 만들기

0

101

2

flake8 설치 이후 명령팔레트에서 linter가 안보입니다.

0

239

2

파이썬으로 만들어서 웹호스팅에 올릴경우

0

305

1

현재 구글검색 무한스크롤변경 문의합니다

0

299

1

몽고디비아틀라스로 추가 공부해서 올립니다.

0

218

1

IIS 500.19에러

0

664

2

버전 문제도 수정했는데 결과가 안나옵니다.

0

258

1

데이터베이스 저장관련 질문입니다.

0

272

1

test가 생기지 않습니다.

0

513

3