강의

멘토링

커뮤니티

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

D_One님의 프로필 이미지
D_One

작성한 질문수

Node.js 교과서 - 기본부터 프로젝트 실습까지

실시간 GIF 채팅방 DB & pug 세팅

질문이요

작성

·

142

0

몽고 디비 세팅 하는거요, 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1.

room.js 

const mongoose = require('mongoose');

const {Schema} = mongoose;
const roomSchema = new Schema({
...})

 

chat.js 

const mongoose = require('mongoose');

const {Schema} = mongoose;
const {Types : {ObjectId} } = Schema;

const chatSchema = new Schema({
room: {
type: ObjectId,
required: true,
ref: 'Room'
},
..})

 

chat.js 와 room.js 에서 다른 점이 ,

chat.js 에

const {Types : {ObjectId} } = Schema;

이것이 있는데, 이것은 무엇을 위해 사용하는건가요?? 

무슨 뜻인가요??

이 뜻이 몽구스에 서 Schema만 갖고와서 사용하겠다는  뜻인데,

const {Schema} = mongoose;

 

이것은 Schema에서 

Types : {ObjectId}

이것만 띄어 오면, ObjectID만 쓴다는건가요??

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2.

전체적으로 스키마 만들때요, 궁금한게 있는데요, 

 

const mongoose = require('mongoose');

const {Schema} = mongoose;
const roomSchema = new Schema({
...})
 
module.exports = mongoose.model('Room',roomSchema);

위와 같은 식으로 기본적으로 이루어 지잖아요. 

도대체, 

const {Schema} = mongoose;

이 부분이 왜 필요한지를 모르겟네요.. 

본문에서 Schema 자체가 안쓰이지 않나요?

그럴거면, 왜 mongoose 에서 Schema를 뽑아 내는 이유가 무엇인가요??

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

3.

module.exports = mongoose.model('Room',roomSchema);

mogoose.model() 자체의 의미가 스키마를 구현하겠다 이소린가요? 

mongoose.model( 앞으로 불릴 스키마의 이름, 세팅된 스키마가 저장된 객체 ); 

지금 제가쓴 인자들이 맞나요?? 

 

 

답변 1

0

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

1. const ObjectId = mongoose.Schema.Types.ObjectId를 구조분해한 것입니다.

2. new Schema 뽑아냅니당.

3. 스키마(구조 정의)를 토대로 모델을 만드는 것입니다. 모델은 컬렉션과 대응됩니다.

model(모델이름, 스키마객체, 컬렉션이름) 이렇게 인수를 줄 수 있습니다.

D_One님의 프로필 이미지
D_One

작성한 질문수

질문하기