본문 바로가기

몽고db4

ImportError: cannot import name 'abc' from 'bson.py3compat GCE 가상머신에서 도커 이미지를 불러오는 도중에 아래와 같은 에러가 발생했습니다. ImportError: cannot import name 'abc' from 'bson.py3compat 검색 결과 bson과 pymongo가 같이 설치되어 있을 때 충돌이 발생하는 에러였습니다. bson Github issue에 해당 에러에 대한 내용이 있었는데, pymongo 라이브러리를 설치하면 bson도 같이 설치되기 때문에 추가적으로 bson을 설치할 필요가 없다는 내용이 있었습니다. 그래서 bson은 따로 설치할 필요 없이, pymongo만 설치해서 해당 에러를 해결할 수 있었습니다. 2021. 8. 19.
Djongo datetime JSON Serializable Error model에서 deadline = models.DateField(auto_now_add=False) 형태로 DateField를 만들었습니다. Serializer로 데이터를 넣는건 문제가 없었는데, 가져와서 Response 해주는게 문제였습니다. 파이썬으로 불러올 때 datetime type으로 오기 때문에, json으로 리턴해주는게 문제였습니다. 이를 해결하기 위해, 이전 글에서 작성했던 JSONEncoder에 추가적으로 아래와 같이 수정했습니다. https://zih0.tistory.com/13 import datetime class JSONEncoder(json.JSONEncoder): def default(self, o): if isinstance(o, ObjectId): return str(o) .. 2021. 8. 19.
Djongo ObjectID $oid 형식 수정하기 저는 현재 Djongo를 이용해서 Django + MongoDB 환경에서 프로젝트를 진행중입니다. Model.objects.get 또는 filter를 사용해서 데이터를 불러올 경우, Response 안에 ObjectID가 아래와 같이 반환되는 경우가 있습니다. { "_id": { "$oid": "abc123" } } $oid 부분이 마음에 들지 않았고 아래와 같이 반환되었으면 했습니다. { "_id": "abc123" } 구글링을 하다가 답을 찾을 수 있었습니다. https://stackoverflow.com/questions/16586180/typeerror-objectid-is-not-json-serializable#16586277 이를 위해 JSONEncoder를 수정해주었습니다. 타입이 Objec.. 2021. 8. 14.
MongoDB Error: querySrv ENODATA 잘 되던 몽고DB가 갑자기 접속해보니까 위와 같은 에러가 발생했습니다. ( Atlas 사용 시 ) 안될리가 없는데 안되서 당황했는데, 검색해보니까 스타벅스에서 접속했을 때 발생하는 에러였습니다. ( 해외에서도 스타벅스에서 위와 같은 에러가 발생한 사람이 많았다 ) ref: https://stackoverflow.com/questions/54484673/error-querysrv-enodata-mongodb-tcp-blog-cluster-0hb5z-mongodb-net-at-queryreq Error: querySrv ENODATA _mongodb._tcp.blog-cluster-0hb5z.mongodb.net at QueryReqWrap.onresolve [as oncomplete] It looks li.. 2021. 8. 12.