MongoDB 코드에서 연결

  • mongoose를 이용해 데이터베이스에 연결할 수 있다.

 

mongoose

  • mongoose는 MongoDB에 데이터를 쉽게 읽고 쓰게 해주는 JavaScript 라이브러리다.
  • Mongoose를 ODM ( Object Document Mapper ) 이라고도 부른다.
  • ODM ( Object Document Mapper ) 이란, JavaScript의 객체와 MongoDB의 문서 사이에서 매핑을 수행하는 도구다.
  • Javascript 코드에서 작업하는 객체 ( Object )를 MongoDB 데이터베이스의 문서 ( Document )로 쉽게 변환하거나, 반대로 문서를 개체로 변환해주는 작업을 수행한다.

 

mongoose 설치

  • 터미널에 yarn add mongoose 명령어를 통해 mongoose를 설치 할 수 있다.

https://www.npmjs.com/package/mongoose

 

mongoose

Mongoose MongoDB ODM. Latest version: 8.6.0, last published: 5 days ago. Start using mongoose in your project by running `npm i mongoose`. There are 18707 other projects in the npm registry using mongoose.

www.npmjs.com


mongoose의 문서 ( Document )

RDBMS 와 MongoDB 비교

 

  • MongoDB에서 가지고 있는 각 데이터 하나하나를 문서 ( Document )라고 정의한다.
  • 1개 이상의 Key-Value의 쌍으로 이루어져있다.
  • JSON 형식으로 구성되어있다.

mongoose의 컬렉션 ( Collection )

  • 컬렉션 ( Collection )은 여러개의 문서 ( Document )를 보유할 수 있는 MongoDB의 구성요소다.
  • JSON 형식의 여러가지 문서 ( Document )를 보유할 수 있다.
  • 컬렉션 ( Collection )은 고정된 구성요소가 존재하지 않고, 유연하게 구성할 수 있다.
  • 관계형 데이터 베이스 ( RDB ) 의 Table과 동일한 역할을 한다.

mongoose의 스키마 ( Schema )

  • 스키마 ( Schema )는 컬렉션 ( Collection )에 들어가는 문서 ( Document )가 어떤 종류의 값을 가질 것인지 정의하기 위해 사용한다.
  • 스키마 ( Schema )는 데이터의 구조와 어떤 제약 사항을 가지는지 정의하기 위해 사용하며, 일반적으로 데이터를 모델링할 때 사용한다.
  • 스키마 ( Schema )는 어떤 필드가 있어야 하는지, 필드는 어떤 데이터 타입을 가져야 하는지를 정의한다.
let UsersSchema = new mongoose.Schema({
  name: String, // 문자열 타입
  age: Number, // 숫자 타입
  favorites: [String], // 문자열 배열 타입
  createdAt: { type: Date, default: Date.now }, // 날짜 타입
  someId: mongoose.Schema.Types.ObjectId // ObjectId 타입
});

 

위는 사용자 정보를 정의한 스키마 ( Schema )의 예시다

 

mongoose의 모델

  • 모델 ( Model )은 데이터베이스에 데이터를 저장하고 읽어올 때 사용하는 데이터의 구조다
  • 스키마를 바탕으로 만들어지고, JavaScript의 객체와 MongoDB 간의 상호작용을 하기 위해 사용한다.
  • MongoDB의 실제 데이터를 다룰 수 있는 메서드를 지니고 있다.

 

+ Recent posts