inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

mongoDB 기초부터 실무까지(feat. Node.js)

Virtual Populate

관계설정에 대해서 질문있습니다

178

jjongrrr

작성한 질문수 26

0

이번 강의에서 Blog모델에 Comment를 가상으로 추가하셨는데요~ 그렇게 하는 이유가 있을까요 ? 

예로 드실 때 comment 추가하셨다가 이렇게 해도 되는데 가상으로 추가하신다고 하고 이유를 말씀안해주셔서 궁금합니다 

관계 설정때문에 그렇게 하신걸까요 ?

 

그리고 모델 생성하실 때 1대 다 관계는 "다"인 관계쪽에만 연결해주셨는데 "1" 쪽에는 넣어주면 안될까요 ? 

예를 들어

User가 다수의 Comment를 가지고 있으니 

User(1)  Comment(다) 이 구조에서

User 모델에는 Comment를 안가지고 있고 

Comment 모델에만 User를 연결한게 궁금합니다 

User 모델에도 comment: [ id~~ , ref: 'comment']를 연결해주면 어떻게 되는걸까요 ?

 

아래처럼요! 

user: { type: Types.ObjectId, required: true, ref: 'user', },

 

그렇게 하면 User모델에 comment가 생겨서 본인이 쓴 코멘트들을 가상 설정안해도 바로 프론트에서 쓸 수 있을거같아서요~

아니면 User 모델에 에 가상으로 만들어서 연결하고 보내주는게 더 성능이 좋은걸까요 ? 

아니면 Comment 모델에서 userid로 검색해서 해당 Comment만 가져오는 api를 만드는게 나을까요 ? 

mongodb nodejs javascript DBMS/RDBMS rest-api aws 데이터 엔지니어링

답변 1

1

김시훈 (도도소프트)

좋은 질문입니다. 그렇게 하셔도 되요! 뒷부분에 가면 그렇게 하고 있습니다.

 

처음에 이렇게 보여드린 이유는 관계형(대중적인) 디비에 익숙하신 분들을 위해서요. 보통은 이런느낌으로 하거든요. 점진적으로 몽고디비 스타일로 업데이트 되는 과정이 나와요. 말씀하신 comment _id 내장도 몽고디비 방식 중 하나이고요(관계형에서는 이렇게 못해요. 배열 저장이 안되니깐요). 그리고 더 나아가서는 자주 보는 최신 comments 몇개를 통째로 블로그에 내장하는 것도 나와요

0

jjongrrr

감사합니다~ 강의 끝까지 다 보면서 애매했던 부분들을 익힐 수 있어서 매우 좋았습니다 

option usecreateindex is not supported 오류 나면은

0

162

1

Schemaless 특성을 재생시 검은화면이 나와요

0

258

1

user 내장 시 ref 필드 필요성

0

256

1

await 관련해서 질문드릴게 있습니다!!

0

306

2

섹션6의 3번째 강의 faker파일이 어디있나요?

0

320

1

$elemMatch 질문이 있습니다.

0

251

1

DB 업데이트에 실패했을 상황에서 대처는 어떻게 할 수 있나요.

2

777

2

블로그에 user 데이터를 추가하는 방법에 대해서

0

243

1

blog 데이터 생성시 user 관련 오류

0

363

1

age 예외 처리를 별도로 하신 이유가 궁금합니다.

2

312

2

delete 메소드가 많은 이유가 궁금합니다.

0

185

1

unique validation 처리

0

302

1

updateMany에서 user._id를 못찾는 상황

1

402

1

find() 가 리턴하는 instance member

1

438

3

몽고 db를 백업방법을 부탁합니다.

0

610

1

인덱스 생성시점

0

720

1

$pull 문법에 대한 질문

0

366

1

comment의 id가 생성되는 시점

1

310

1

리팩토링 강의에서 라우터 리팩토링 전개연산자(...)

1

321

1

session.abortTransaction()에 대한 실제 예시 문의

0

296

1

섹션9 Computed Fields 강의에서, 다음 강의 가기 전 빠진부분

-1

413

1

faker 패키지 취약성 이슈

1

495

1

라우터 리팩토링

0

348

1

섹션4 진행중, mongoose 질문

0

316

1