• [MongoDB] Mongoose 사용하기 (1)

    2023. 4. 8.

    by. 지은이: 김지은

    728x90

    Mongoose ODM(Object Data Modeling)이란?

    mongoose는 MongoDB ODM 중 가장 유명한 라이브러리.

    MongoDB의 Collection에 집중하여 관리하도록 도와주며 관련 기능들을 쉽게 사용할 수 있도록 도와준다.

     

    Mongoose ODM을 사용하는 이유?

    연결관리

    MongoDB의 기본 Node.js 드라이버는 연결 상태를 관리하기 어렵지만, Mongoose를 사용하면 간단하게 데이터베이스 연결상태를 관리해 준다.

     

    스키마 관리

    스키마를 정의하지 않는 건 NoSQL의 장점이었지만, 데이터 형식을 미리 정의해야 코드 작성과 프로젝트 관리에 유용하기 때문에

    Code-Level에서 스키마를 정의하고 관리할 수 있게 해 준다.

     

    Populate

    MongoDB는 Join을 제공하지 않아 유사한 기능을 하는 aggregate라는 복잡한 쿼리를 사용해야 하지만, populate를 사용하여 간단하게 구현 가능하다.

     

    Mongoose ODM 사용 방법

    1. 스키마 정의

    Collection에 저장될 Document의 스키마를 관리할 수 있도록 스키마를 작성할 수 있다.

    다양한 형식을 미리 지정하여 생성, 수정 작업 시 데이터 형식을 체크해 주는 기능을 제공한다.

    // Schema 모듈 불러오기
    const { Schema } = require("mongoose");
    
    const PostSchema = new Schema({
        title: String,
        content: String,
      });
    
    module.exports = PostSchema; // 정의한 PostSchema 내보내기

    객체 안에 있는 속성 명이 필드명!

     

     

    2. 모델 만들기

    위처럼 작성된 스키마를 바탕으로 몽구스에서 사용할 수 있는 모델로 만들어야 한다.

    const 모델이름 = mongoose.model("모델 이름", 스키마 이름)

    const mongoose = require("mongoose");
    const PostSchema = require("./board");
    
    exports.Post = mongoose.model("Post", PostSchema); // 스키마를 모델로 변환하여 내보내기

     

    3. 데이터베이스 연결

    connect 함수를 이용하면 간단하게 데이터베이스에 연결할 수 있다.

    몽구스는 자동으로 연결을 관리해 주어 모델 사용 시 연결 상태를 확인하여 사용이 가능할 때 작업을 실행한다.

    const mongoose = require("mongoose");
    
    const { Post } = require("./models");
    
    mongoose.connect("url")

    mongoose의 connect() 함수 안에 연결할 mongoDB url 넣기

     

    Reference

    • 엘리스

    'MongoDB' 카테고리의 다른 글

    [MongoDB] 비교쿼리 연산자 (eq, ne, gt, lt, gte, lte)  (0) 2023.05.29
    [mongoDB] mongoose 사용하기 (2)  (0) 2023.05.24
    [MongoDB] MongoDB란?  (0) 2023.04.07

    댓글