inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

섹션 소개

한가지 궁금한 점이 있습니다~~

225

jjongrrr

작성한 질문수 26

0

안녕하세요

강의 잘 보고 있습니다!

 

질문1)

5분 54초에 후기의 블로그엔 인덱스가 안걸려있다는 말씀이

 

지금 구조에 comments 아래

_id: ObjectId('~~') <- 인덱스처리되어있음

blog: ObjectId('~~') <- 인덱스 처리 안되어있음..그래서 메모리적음

 

이 말씀이실까요 ?

 

 

질문2)

관계라는게 코드상에서 어떤 관계인지 잘 이해가 안가네요 ㅠㅠ

 

가상필드 만들고

blog: type: Types.ObjectId, ref: 'blog' 연결하고

api 에서 populate로 한게 관계설정한거라고 보면 될까요 ?

 

 

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

답변 1

1

김시훈 (도도소프트)

ObjectId 자체는 index와 아무 상관이 없어요. ObjectId의 같은 형식을 일반 string을 저장할 때보다 용량이 적은게 특징입니다. 각 문서 _id에 기본설정으로 인덱스 처리가 되어 있고 그 외 다른 field에 index를 걸고 싶으시면 직접 걸어주셔야되요. 다만 _id를 포함해서 일반적으로 인덱스를 거는 필드들이 ObjectId이면 좋은 점은 용량이 적기 때문이에요. 인덱스는 해당 필드의 값을 상대적으로 비싼 메모리 저장해야되기 때문에 ObjectId이면 비용 절감면이 있어요

 

관계라는걸 너무 어렵게 생각하실 필요 없어요. 크게 다음과 같이 3가지가 있죠: 1대1, 1대 다(1:N), 다 대 대(M:N). 이 관계 자체는 데이터베이스와 상관 없이 있는 개념이에요. 유저와 블로그의 관계가 어떻게 되나요? 한 유저가 여러개의 블로그를 작성할 수 있지만 보통 여러 유저가 한 블로그를 작성할 수는 없죠. 이 경우 유저:블로그 = 1:N이 됩니다. 이런 관계 개념이 있고 이걸 디비에 어떻게 적용하느냐는 디비에 따라 다릅니다. 관계형에서는 코드상으로 업격하게 해주는데 몽고에서는 엄격하게 해주지 않습니다. mongoose(서버)상에서 ref 정도로 해줍니다. populate도 서버에서 이루어지는거고요

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