mongoose를 다루자

Sinf·2022년 1월 21일
0

고민의 흔적

목록 보기
4/38
post-thumbnail

Mongoose

프로젝트에서 NoSQL기반의 mongodb를 사용한다.
백엔드 개발자로 필요한 기술 스택은 SQL 기반이 많은데
다른 이들과 협업을 위해 MongoDB를 사용하기로 했다.
(엘리스 트랙에서 배운 DB가 MongoDB)

mongoose auto increment

mongoDB를 사용하면 각각 document에 mongoDB가 기본적으로 생성하는 id 값이 존재한다. 하지만 따로 자동 증가하는 id 값을 사용하고 싶을 때, mongoose-sequence 패키지를 사용한다.

mongoose-auto-increment 도 있는데, 이거, mongoose 4버전 이하에서만 동작한다. 그리고 업데이트 안한지도 오래되었다.

패키지 설치

npm i --save mongoose-sequence

적용하기

// 스키마 정의한 js 파일에서
const mongoose = require('mongoose');
const AutoIncrement = require('mongoose-sequence')(mongoose);

// Schema
const PostSchema = new mongoose.Schema({
	// 스키마 작성
});

// auto increment 적용
PostSchema.plugin(AutoIncrement, {inc_field: 'id'});

module.exports = PostSchema;

inc_fieldvalue 를 원하는 변수명으로 사용할 수 있다. id가 아니라 postId 와 같이.

하지만, 사용하지 않았다!

도큐먼트 ID로 유니크한 값을 사용하기로 했다!

mongoDB에 csv 파일로 document 생성하기

mongoimport 를 사용하면 아주 깐딴!

# mongodb-databse-tools 설치 필요
brew tap mongodb/brew
brew install mongodb-database-tools

mongoimport --uri mongodb+srv://<id>:<password>
	@simple-board-cluster.fjjg6.mongodb.net/<DB> 
	--collection locations --type csv --headerline --file <filename>
  • uri: mongodb 주소값, 현재 atlas를 이용한 경우의 uri임. 로컬의 경우 로컬 db 주소를 사용한다.
  • collection: 컬렉션 명
  • type: 어떤 형식을 올릴지 정한다.
  • headerline: csv 형식의 파일의 경우 field 값을 정해야 하는데, headerline 옵션을 사용하면 첫 행을 field 값으로 사용한다.
  • file: 해당 파일
profile
주니어 개발자입니다. 🚀

0개의 댓글