FrontEngineer JungBam

몽고db에 자동으로 저장되는 _id로 작업하기 본문

개발일지

몽고db에 자동으로 저장되는 _id로 작업하기

정밤톨 2022. 11. 15. 18:02

몽고db를 사용하면서 그냥 아무렇지 않게 쓰던 list() 안에 find({},{'_id':False})가 왜 그렇게들 작업하는지 알 수 있었다.

_id를 통해 갖고 오는 데이터의 번호를 붙여주려고 작업을 하고 있었다.

@app.route("/petcafe/seoul", methods=["GET"])
def petcafe_seoul_get():
  all_article = list(db.article.find({},{'_id':False}))
  return jsonify({'orders': all_article})

근데 여기서 {'_id':False}를 지우니까 서버에러가 난다.

에러의 이유를 찾아보니까 _Id는 오브젝트라서 데이터로 처리할 수 없다.라는 내용이었다.

 

여기저기 이유를 찾아보다가 사전 프로젝트에서 알게된 지용님에게 물어봤는데 같은 고민을 이미 해결하셨었고, 가져온 _id값을 벗겨주는 작업을 하면 되는 것이었다.

(아래 코드 참고)

@app.route("/board/get", methods=["GET"])
def board_get():
  all_article = list(db.board.find({}))
  decoded_all_article = []
  for document in all_article :
    document['_id'] = str(document['_id'])
    decoded_all_article.append(document)

  return jsonify({'articles': decoded_all_article})
반응형

'개발일지' 카테고리의 다른 글

python에 동적경로 넘기기  (0) 2022.11.16
카카오 MAPS API 사용하기  (0) 2022.11.15
JWT(로그인 / 로그아웃)  (0) 2022.11.14
json 파일의 이해  (0) 2022.11.11
URL에서 쿼리스트링 값 받아오기  (0) 2022.11.10
Comments