sequelize에서 JSON 타입 데이터 추출하기

Creating the dots·2021년 11월 30일
0

project-3-ShallWeHealth

목록 보기
14/26

어떤 에러?

  • JSON타입 데이터 추출할때, $$ 기호가 중복 표기됩니다.

에러 메시지

에러 메시지는 따로 나오지 않고, 로그로 확인한 sql문에 다음과 같이 $$로 표시되어 쿼리문이 실행되지 않습니다.

JSON_EXTRACT(`posts`.`location`, "$$.addressName") AS `addressName`, JSON_EXTRACT(`posts`.`location`, "$$.placeName") AS `placeName`

에러 핸들링 방법

  • 핸들링 방법에 대해서 간단하게 기록해보세요.
    기존에 작성했던 방법은 다음과 같습니다.
 [
    sequelize.fn(
      "JSON_EXTRACT",
       sequelize.col("`posts`.`location`"),
      "$.addressName"
     ),"addressName",
   ],
   [
      sequelize.fn(
        "JSON_EXTRACT",
         sequelize.col("`posts`.`location`"),
        "$.placeName"
        ), "placeName",
   ],

변경한 코드는 다음과 같습니다. sequelize.literal 함수를 사용해 키를 명시해주었습니다.

 [
    sequelize.fn(
      "JSON_EXTRACT",
       sequelize.col("`posts`.`location`"), //posts라는 테이블의 location이라는 필드
       sequelize.literal(`"$.addressName"`) //location의 데이터타입은 json이며, 그 중 addressName이라는 키값을 추출한다.
     ),"addressName", // 이때, 키 이름은 addressName으로.
   ],
   [
      sequelize.fn(
        "JSON_EXTRACT",
         sequelize.col("`posts`.`location`"),
        sequelize.literal(`"$.placeName"`)
        ), "placeName",
   ],

에러 핸들링을 위해 참고한 레퍼런스 링크

링크
https://stackoverflow.com/questions/66247076/sequelize-problem-with-dobule-in-json-extract

profile
어제보다 나은 오늘을 만드는 중

0개의 댓글