TIL 20210520 mongodb update_many
회사에서 운영중인 웹사이트가 버전업을 하면서 많은 시행착오가 있었다.
그 중에서 로그인 관련 문제가 있었는데 사용중인 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)
Author And Source
이 문제에 관하여(TIL 20210520 mongodb update_many), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jiffydev/TIL-20210520-mongodb-updatemany저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)