프로젝트에서 NoSQL기반의 mongodb를 사용한다.
백엔드 개발자로 필요한 기술 스택은 SQL 기반이 많은데
다른 이들과 협업을 위해 MongoDB를 사용하기로 했다.
(엘리스 트랙에서 배운 DB가 MongoDB)
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_field
의 value
를 원하는 변수명으로 사용할 수 있다. id
가 아니라 postId
와 같이.
하지만, 사용하지 않았다!
도큐먼트 ID로 유니크한 값을 사용하기로 했다!
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
: 해당 파일