본문 바로가기

Study/Mongo & Mongoose

(4)
Schema Validation mongoose는 shema를 정의할 때 전달받은 조건을 자동으로 검사해주는 built in validation(내장 유효성 검사)을 제공한다. const productShema = new mongoose.Schema({ name: { type: String, required: true, }, price: { type: Number, required: true, min: 0, // or min: [0, 'set price positive'] => 두번째 아이템을 에러메세지로 전달 }, onSale: { type: Boolean, default: false, }, categories: { type: [String], default: ['cycling'] } }); const Produc..
what is Mongoose? Mongo shell에서 직접 데이터베이스를 관리해야 하는 상황도 있지만, shell만 이용하는 것은 불편하다. 그래서 대부분의 경우 어플리케이션과 데이터베이스를 연결하는 툴(driver)을 사용하는데, Mongoose도 이런 툴 중 하나이다. ODM ODM(Object Data/Document Mapper)은 NoSQL 기반 데이터베이스에 저장되어있는 데이터를 유용한 객체 데이터로 변환해 주는 툴을 말한다. Mongoose도 수많은 ODM 중 하나로, Mongo에 저장되어 있는 데이터를 JS객체로 변환하고, JS 코드로 데이터베이스를 관리할 수 있게 만든다. ODM은 다음과 같은 역할을 한다. DB에 저장되어 있는 데이터와, 삽입할 데이터를 mapping(연결)한다. mapping | an operat..
what is BSON? BSON vs. JSON | Binary JSON JSON 데이터는 다음과 같은 단점이 있다. JSON은 텍스트 기반의 데이터 형식으로, parsing 과정을 필요로 하는데, 텍스트 parsing은 매우 느리다. JSON은 가독성을 고려해서 작성되기 때문에, 파일 내부에 불필요한 spacing이 포함된다. 데이터를 압축해서 저장해야하는 데이터베이스의 컨셉과 거리가 멀다. 모든 타입의 데이터를 지원하지 않는다. ⭕ String, Boolean, Number, Array JSON의 이러한 한계를 극복하기 위해, Mongo는 데이터를 BSON(Binary JSON) 형식으로 변환하여 저장한다. 즉 텍스트 데이터를 이진수로 변환하여 저장한다. 이 때 BSON은 다음과 같은 장점을 가지고 있다. text pars..
Mongo shell Mongo syntax +) what is DataBase? +) MongoDB installation guide for windows Mongo shell이란 node REFL과 같이, Mongo 코드를 입력하고 평가할 수 있는 콘솔이다. 이곳에서 새로운 데이터베이스를 생성하고, 관리할 수 있다. start & exit cls | clear console ctrl + c | mongo 종료 만든 데이터베이스에 아무런 데이터가 없다면, mongo가 종료되면서 해당 데이터베이스도 사라짐 use dbName | 데이터베이스를 만든다. db | 현재 사용하고 있는 데이터베이스를 확인한다. show dbs | 모든 데이터베이스를 확인한다. 이 때 데이터가 들어있지 않은 데이터베이스는 목록에서 확인할 수 없음 C..