Mongoose 배워보기

hihanhee·2021년 5월 7일
0

Mongoose?

💡 Mongoose는 Windows나 Unix에서 작동되는 사용하기 쉬운 웹서버다.
💡 Mongoose는 간단하고 깔끔한 API를 제공한다.
💡 웹 어플리케이션 개발자들, 임베디드 시스템 개발자들, 그리고 파일 공유를 빨리 구축하고 싶은 사람들이 사용하면 좋다! + 설치도 간단!

Schema

Mongoose는 Schema로 시작된다.
각 스키마는 MongoDB 컬렉션에 매핑되고 해당 collection 내에 documents 형태로 정의된다.

💡 여기서 collection은 테이블을 뜻하고, documents는 json(객체, object)이라고 생각하면 됨.

예시코드

import mongoose from "mongoose";

const UserSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true,
  },
  email: {
    type: String,
    required: true,
    unique: true,
  },
  password: {
    type: String,
    required: true,
  },
  avatar: {
    type: String,
  },
  date: {
    type: Date,
    default: Date.now,
  },
});

위 코드처럼 각 property에 SchemaType을 정의해줌.

예를 들어, name property는 String SchemaType으로 정의됨.

예를 들어, date property는 Date SchemaType으로 정의됨.

_id

기본적으로, mongoose는 스키마에 _id 속성을 추가한다.

const schema = new Schema();

schema.path('_id'); // ObjectId { ... }

Query Helpers

Mongoose 모델은 CRUD 작업을 위한 몇 가지 static helper function들을 제공한다.
이러한 각 함수는 몽구스 쿼리 개체를 반환한다.

find()

Mongoose는 명령을 전송하기 전에 모델의 스키마와 일치하도록 필터를 cast한다.

findById()

_id 필드별로 document를 찾는다.

💡 document의 _id로 쿼리하려면 findOne() 대신 findById()를 사용하면됨.

save()

document.isNew의 값이 true일 경우, 데이터베이스에 새 문서를 삽입하여 이 문서를 저장하거나,
document.isNew의 값이 false일 경우, 수정된 경로만으로 updateOne 작업을 보낸다.

populate

populate를 통해 다른 collection의 document를 참조할 수 있다.

profile
안녕하세요:)

0개의 댓글