강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

bs44108님의 프로필 이미지
bs44108

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

PostHashtag테이블

작성

·

334

0

PostHashtag(Post와 Hashtag 중간 테이블)에서 findAll을 해서 hashtag이름 까지 가지고 오는 방법이 있을 까요? 지금은 해쉬태그 Id까지밖에 가지고 오지 못해서요

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

PostHashtag.findAll 하면서 include: { model: Hashtag } 하시면 됩니다.

bs44108님의 프로필 이미지
bs44108
질문자

SequelizeEagerLoadingError: Hashtag is not associated to PostHashtag!

이런 에러가 나오면서 작동이 안되는거 같아서 여쭤봤습니다

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

PostHashtag에서 associate 되어 있지 않나요? hasMany로 associate 하시면 됩니다.

bs44108님의 프로필 이미지
bs44108
질문자

지금은Post랑 Hashtag가서로 belongstoMany로 되어있는데 그걸 hasMany로 둘다 바꾸면 되나요?

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

PostHashtag에서 hasMany Hashtag 하시면 됩니다.

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

혹시 PostHashtag를 안 만드셨나요??

bs44108님의 프로필 이미지
bs44108
질문자

PostHashtag가 제가 만든 테이블이 아니라 Post와 Hashtag테이블을 서로 belongstoMany하면서 through 하게된 중간 테이블입니다 자동으로 생긴 테이블입니다

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

아, 이 경우에는 직접 PostHashtag 모델 파일을 만드셔야 합니다. 자동으로 생긴 테이블은 힘들 수 있습니다.

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

혹시나 해서 드는 생각이긴 한데 index.js에서

sequelize.models.PostHashtag.hasMany(db.Hashtag) 해서 되면 모델 파일 안 만들고도 가능할 것 같습니다.

bs44108님의 프로필 이미지
bs44108
질문자

제가 지금 하고 싶은 기능이 많이 사용된 해쉬태그를 랭킹으로 보여주는 거여서 PostHashtag에서 HashtagId를 그룹으로 해서 카운트 하는 방법으로 구현했는데 여기에 해쉬태그의 이름이 포함이 안되어서 그런건데 혹시 방법이 없는걸까요?

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

sequelize.models.PostHashtag.hasMany(db.Hashtag)

이걸로 해서 include 안되는 건가요?

bs44108님의 프로필 이미지
bs44108
질문자

image

이렇게 했는데 db를 만드는 와중에서 에러가 나옵니다

throw new Error("N:M associations are not supported with hasMany. Use belongsToMany instead");

^

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

sequelize.models.PostHashtag.belongsTo(db.Hashtag) 마지막으로 한 번 해보시고, 안 되면 raw query를 하거나 PostHashtag 모델을 따로 만드셔야 할 것 같습니다.

bs44108님의 프로필 이미지
bs44108

작성한 질문수

질문하기