TIL 20210520 mongodb update_many

jiffydev·2021년 5월 22일
0

회사에서 운영중인 웹사이트가 버전업을 하면서 많은 시행착오가 있었다.
그 중에서 로그인 관련 문제가 있었는데 사용중인 aws cognito에서 발급되는 username이 새 버전 db에 남아 있어서 발생하는 것으로 추측되었다.

그래서 내가 맡은 일은 새 버전 db의 cognito username을 모두 null로 만드는 것.
mongodb를 사용해 본 적이 없어서 검색을 통해 updateMany 함수를 사용하기로 했다.
updateMany()는 기존의 update()함수가 multi 옵션을 통해 여러 행의 데이터를 동시에 바꿀 수 있었던 것을 대신해, 옵션 없이도 여러 데이터를 갱신할 수 있도록 한 것이다.

참고한 코드는 다음과 같다.
회사에서는 python을 사용해 개발을 하고 있기 때문에 pymongo를 통해 mongodb에 접근했다.
출처: https://www.w3schools.com/python/python_mongodb_update.asp

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["company"]
mycol = mydb["users"]

myquery = {} # 모든 데이터를 수정해야 하므로 빈 대괄호를 주었다
newvalues = { "$set": { "cognitoUsername": None } } # set 옵션은 반드시 필요하다

>> mycol.update_many(myquery, newvalues)
profile
잘 & 열심히 살고싶은 개발자

0개의 댓글