• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

질문이요

19.08.20 21:50 작성 조회수 72

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(모델이름, 스키마객체, 컬렉션이름) 이렇게 인수를 줄 수 있습니다.