[Node.js] Mongoose / Schema

Gomao·2023년 4월 9일
0

Node.js

목록 보기
6/8

Mongoose와 Schema가 뭐지?

기본적으로 정의는 다음과 같다.

  1. Mongoose : MongoDB ODM(Object Data Modeling)
  2. Schema : Data Structure

이때, 기본적으로 MongoDB는 NoSQL 방식의 Database이기 때문에, 기본적으로 schema가 없으나, mongoose를 이용 하여 schema를 정의할 수 있다.

Schema는 DB에서 사용할 데이터 구조(Data Structure)를 정의하는 데 사용하는데, 예를 들면 username, email, pw 등의 속성값과 필수 여부 등을 정의하는 것이다.

왜 사용하는거지?

Mongoose는 schema를 사용하여 MongoDB에서 데이터의 CRUD(Create, Read, Update, Delete) 작업을 수행한다.

데이터의 일관성을 유지하고, 데이터 구조에 대한 검증을 목적으로 한다.

이것은 NoSQL인 MongoDB가 가질 수 있는 단점을 보완하기 위한 것이다.

Mongoose를 사용하는 방법

먼저 mongoose는 Node.js 환경에서 사용되기 때문에,
Node.js 환경이 구축되어 있어야 한다.

다음 mongoose를 사용할 project를 생성해야 한다.

여기까지 작업이 완료되었다면, 이제 terminal을 이용하여 다음 작업을 하면 된다.

npm install mongoose

이제 mongoose를 아래와 같이 사용할 수 있다.

// 폴더 경로 : (최상위 폴더) index.js 

const mongoose = require("mongoose")
const URL = "사용할 URL 주소"
mongoose.connect(URL)

Schema를 정의하는 방법

Schema를 사용하기 위해서는 먼저 mongoose 모듈을 불러 와야 한다.

const mongoose = require("mongoose")

이어서 mongoose.Schema 함수를 이용하여 Schema를 정의 할 수 있다.

const userSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true
  },
  email: {
    type: String,
    required: true,
    unique: true
  },
  age: {
    type: Number,
    required: true
  },
})

혹은, 아래와 같이 구조분해를 통해 간단히 선언할 수 있다.

const {Schema} = require("mongoose")

const userSchema = new Schema({
	...
}

Schema를 적용하는 방법

앞에서 생성한 Schema를 사용하기 위해 export 해야 한다.

const User = mongoose.model("User",userSchema);
module.exports = User;

혹은, 여러 가지 model을 한번에 보낼 수도 있다.

// 폴더 경로 : models/schemas/user.js
const {Schema} = require("mongoose")
const userSchema = new Schema({
	...
})

module.exports = UserSchema;


// 폴더 경로 : models/index.js
const mongoose = require("mongoose")
const UserSchema = require("./schemas/user")

exports.User = mongoose.model("User", UserSchema);

profile
코딩꿈나무 고마오

0개의 댓글