Enjoy Programming

MongoDB - Video Model 본문

JavaScript/Node.JS

MongoDB - Video Model

LEETAEEON 2021. 4. 30. 13:01

몽고 db의 장점은 document를 줄여준다는 것이다.,

document는 바로 JSONfile

몽고db에 개발자의 파일들이 어떤식으로 생겨야 할 지 알려줘야 한다.

일종의 validation이 필요하다.

예를 들어 파일들은 video라는 이름을 가지고 모든 비디오들은 string type이며 string의 이름은 title이다.

그리고 videos는 view를 가지게 되고view는 number type이다 라고~ 알려주는? 그런 것이다.

일단 models라는 폴더를 만들고 거기에 저장해주자.

그리고 Video.js파일을 하나 만들어주고 안에 model과 schema를 설정해주자

model은 document name이며   schema는 형태이다

 

여기서 잠깐... 잠시 몽고디비를 배웠을때 mongodb는 nosql 데이터베이스이며 schema-less라고 배웠다..

그런데 schema가 있다?

찾아보니 이는 RDMS처럼 고정 스키마가 존재하지 않는다는 뜻으로 같은 collection 내에 있더라도 documnet level의 다른

스키마를 가질 수 있다는 의미이다.

관계형데이터베이스는 각 테이블마다 동일한 스키마를 가져야 하며 스키마를 변경하고자 한다면 모든 데이터를 변경해야 한다.

하지만 몽고디비는 하나의 collection내의 document가 각각 다른 스키마를 가질 수 있다.

이런 특성을 동적 스키마라고 한다. 이것은 다시 말해 collection내의 document가 각자의 고유한 filed를 가질 수 있다는 것을 의미한다.

 

poiemaweb.com/mongdb-basics

 

MongoDB Basics - Install | PoiemaWeb

MongoDB의 기본 개념과 설치 RDMS와 MongoDB의 비교

poiemaweb.com

자 다시 본론으로 돌아가 model은 실제 data이고 schema는 shape이다! 찬찬히 이해해보자

이제 비디오 스키마를 지정해준다

각각의 형태를 지정해 줬다. 이번 과정에서는 video를 데이터베이스에 저장하지 않는다

video의 url만 저장하겠다. 데이터베이스가 무거워 지니까~ 그리고 required를 설정한다.

만약 파일 업로드시 조건에 충족하지 않는다면 보여질 error메세지를 지정했다.

나머진 보면 알 수 있고 업로드 날짜도 받겠다.

mongoose의 schema정의에 관해서는 몽구스 사이트에서 참조하자

mongoosejs.com/docs/guide.html#definition

 

Mongoose v5.12.7: Schemas

Schemas If you haven't yet done so, please take a minute to read the quickstart to get an idea of how Mongoose works. If you are migrating from 4.x to 5.x please take a moment to read the migration guide. Everything in Mongoose starts with a Schema. Each s

mongoosejs.com

이제 정의된 schema를 이용해서 Video라는 이름의 model을 만든다

const model = mongoose.model("Video", VideoSchema);

 그리고 default로 export 해준다.

 

그리고  init에 가서  임포트 해준다.

'JavaScript > Node.JS' 카테고리의 다른 글

Express - Home Controller Finished(await, async, try catch) && 비동기 & Promise  (0) 2021.05.01
MongoDB - comment Model  (0) 2021.04.30
MongoDB - configuring Dot Env  (0) 2021.04.30
MongoDB - configuring Dot Env  (0) 2021.04.30
MongoDB 2  (0) 2021.04.28