Backend
MongoDB
NoSQL
데이터베이스이다.- MongoDB에 로그인 후 새로운 프로젝트를 만든다.
- Data Base Access에서 계정을 등록 후 접근 가능한 IP를 작성한다.
- 개인 IP로만 등록해도 되지만 다른 컴퓨터에서 접근이 가능하도록 하려면 0.0.0.0/0으로 IP를 설정해주면 된다.
DataBase
=>Connect
=>Drivers
=> 발급된 URL- 개인 앱에
npm install mongoose
를 설치하고 연결을 확인한다.- 사용자 비밀번호에 특수문자를 작성할 경우 URL에
connect
할 때 주솟값을 인식하지 못 하기 때문에 주의한다.
- 사용자 비밀번호에 특수문자를 작성할 경우 URL에
1
2
3
4
mongoose
.connect("발급된 URL")
.then(() => console.log("Connect"))
.catch((err) => console.log(err));
구조
- MongoDB에는
UserCollection, Documnets, Fields
로 이루어져 있다. - RDBMS는
Table, Rows, Columns
으로 이루어진 것과 같은 구조이다.- RDBMS:Table = MongoDB:Collections, RDBMS:Rows = MongoDB:Documents, RDBMS:Columns = MongoDB:Fields
Mongoose
- Object Data Modeling 라이브러리이다.
- MongoDB 사용을 위한 기능을 추가하고 더 편리하게 이용하기 위해 사용하는 모듈이다.
- Mongoose를 이용해 데이터를 만들고 관리하기 위해
Schema
를 만들고 스키마로 모델을 만든다. - Mongoose는 선택사항이다.
Mongoose 사용법
- 스키마를 생성하고 모델을 만든다.
- 모델을 이용해서 데이터를 저장하거나 업데이트, 삭제 등의 작업을 할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const mongoose = require("mongoose");
const productSchema = new mongoose.Schema({
name: {
type: String,
required: true,
},
description: {
type: String,
required: true,
},
price: {
type: Number,
},
});
const Product = mongoose.model("Product", productSchema);
module.exports = Products;
- Schema를 생성 후
mongoose
에서 제공하는constructor
함수를 통해 새로운 스키마를 정의해준다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 방법 1
Product.create({
name: "apple watch",
description: "cool watch",
price: 1000,
});
const product = new Product({
name: "apple watch",
description: "cool watch",
price: 1000,
});
product.save();
- 이렇게 작성하면 MongoDB의 Collections 안에 Documents가 저장된다.
Schema
- 스키마는 문서(Document)의 구조, 기본값, 유효성 검사기 등을 정의한다.
- 기본값 => default: 0, 유효성 검사 => required: true