on
[DB] MongoDB (NOSQL)
[DB] MongoDB (NOSQL)
NOSQL : Not Only SQL
스키마가 없는 자유로운 데이터 모델이다.
MongoDB란?
NoSQL 데이터베이스이며, 세가지 특징을 가지고 있다.
- Document
: 모든 데이터가 JSON 형태로 저장되며, 스키마가 없다.
: _id 라는 field를 필수적으로 갖는다. ( unique하며 불변성을 갖는다. )
- Full Index Support
: 다양한 인덱싱을 제공한다.
- BASE
- Open Source
1. mongoose : 실제 개발 단계에서 사용하는 것이 맞다.
- MongoDB ODM(Object Document Mapping)중 가장 유명한 라이브러리이다.
- 데이터베이스 연결, 스키마 정의, 스키마에서 모델로 변환, 모델을 이용해 데이터를 다룸
- 프로미스와 콜백 사용가능
Object Document Mapping : 객체와 문서를 1대 1로 매칭해준다.
즉, MongoDB에 있는 데이터를 NodeJS에서 Javascript 객체로 사용할 수 있도록 해준다.
1) 스키마 검증 ( Validation )
: 스키마를 만들 때 여러가지 옵션들이 존재한다.
- required
- validate
** 만약 이메일을 필드로 쓰고 싶은데 어떻게 검증을 해야할지 잘 모르겠다면, 물론 정규식으로 할 수도 있지만 라이브러리를 사용해보자!!
( validator의 여러 기능들 : https://www.npmjs.com/package/validator#validators )
2) 스키마 옵션
: 스키마의 옵션은 다양하다.
검증 관련
- required
- default
- validate
String 관련
- lowercase
- uppercase
- trim
- minlength 등
https://kciter.so/posts/about-mongodb
https://velog.io/@ckstn0777/Mongoose-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0
from http://moretz0921.tistory.com/337 by ccl(A) rewrite - 2021-12-09 15:26:38