노드&리액트 공부 기록(3) - MongoDB 에서 Model, Schema의 개념
my code archive
article thumbnail
반응형

🤍Mongoose에서 Schema, Model이란?

 

오라클, mysql과 달리 MongoDB에는 테이블이 없다고 한다.

Schema는 이로 인한 헷갈림을 방지하기 위해 도입되었다.

 

  • 사용자가 작성한 Schema를 기준으로 데이터를 DB에 넣기 전에 먼저 검사하고 어긋나는 데이터가 있으면 에러를 발생시킨다.
  • 스키마를 설정할 때 인덱스도 걸어둘 수 있고 기본값도 설정할 수 있다.
  • 즉, 스키마=테이블과 어느 정도 비슷한 역할을 한다.
  • Model은 Schema를 감싸주는 역할을 한다.

 

MongoDB는 고정적인 스키마를 갖고 있지 않지만, 이번 3강에서는 데이터베이스 서버가 아니라 우리의 웹서버가 데이터베이스에 들어있는 문서들을 객체화하여 사용할 수 있는 스키마를 설정해 봅니다.

 

🤍스키마

  • 스키마는 해당 컬렉션의 문서에 어떤 종류의 값이 들어가는지 정의.
  • 제목은 String, 댓글은 객체..이런 식으로 각 항목이 어떤 형식인지 정의되어있음.
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var blogSchema = new Schema({
	title: String,
    author: String,
    body: String,
    comments: [{ body: String, date: Date }],
    date: { type: Date, default: Date.now },
    hidden: Boolean, meta: { votes: Number, favs: Number }
  });

 

🤍모델

  • 반면 모델은 스키마를 통해 만드는 인스턴스임.
  • 이 객체를 통해 데이터베이스에 실제 작업을 할 수 있게됨.
  • 데이터 조회,추가,수정,삭제...
var Blog = mongoose.model('Blog', blogSchema);

 

🤍실습

 

1. model 폴더를 만들고 그 안에 User.js 파일을 만들어준다.

 

2. mongoose.Schema를 생성해 sql 테이블처럼 name,email,password,lastname... 등을 설정해 준다.

 

반응형
profile

my code archive

@얼레벌레 개발자👩‍💻

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

반응형