본문 바로가기
  • Let's go grab a data
Development/WEB

MongoDB 테스트 데이터 생성 스크립트

by pub-lican-ai 2017. 3. 6.
반응형

[HTML5]MongoDB 테스트 데이터 생성 스크립트


*알립니다. 아래의 스크립트는 가상의 테스트 데이터 생성 스크립트입니다.

작성자 본인의 기록용입니다.


[테스트 데이터 스키마]

DB명

gallery
Collection명 card
카드아이디 _id
링크 link
카드이미지{섬네일{파일, 설명, 타입}} image{thumbnail{file,desc,type}}
카드명 name
타입 type
카드상세 desc
관련글 relative
등록시간 regDate


1. 프로젝트 폴더내에 db.js 파일 생성하여 아래의 테스트 데이터 작성

2. 우클릭 - Run As - Node Application으로 실행하여 데이터 생성


var MongoClient = require('mongodb').MongoClient;

var ObjectId = require('mongodb').ObjectID;

var clog = require("clog");


clog.configure({"log level": 3});

//{'log': true, 'info': true, 'warn': true, 'error': true, 'debug': true}


MongoClient.connect('mongodb://localhost:27017/gallery', function(err,galleryDB){

if(err){

clog.error("DB 접속 에러."+err);

}else{

clog.info("DB 접속 성공.");

db = galleryDB;

initCollection();

}

});


function initCollection(){

// 현재 DB 삭제

db.command({dropDatabase: 1}, function(err){

clog.info("gallery DB 삭제.");

});

// gallery collection 생성

db.createCollection("card", function(err, card){

db.card = card;

clog.info("card 컬렉션 생성.");

// 1. 카드 데이터(임시) 등록

registCard();

});

}


function registCard(){

cardObjId = [];

for(var i=0; i<7; i++){

cardObjId[i] = new ObjectId();

}

now = new Date();

var cards = [

              {

                 _id: cardObjId[0],

                 link: "http://www.naver.com",

                 image: {thumbnail: {file: "card/Jellyfish.jpg", desc: "test", type:"img"}},

                 name: "좋아보이는 UX 연구 1번",

                 type: "mobile",

                 desc:"DB에 있는 카드 desc1입니다. 이런저런 테스트를 진행중입니다. 얼마나 길게 쓸 수 있을 까요? ", 

                 relative: "http://www.naver.com",

                 regDate: new Date(now*1-1000*60*60*24*30)

              },

              {

                 _id: cardObjId[1],

                 link: "http://www.naver.com",

                 image: {thumbnail: {file: "card/Desert.jpg", desc: "test", type:"img"}},

                 name: "Brand New 연구 1번",

                 type: "web",

                 desc:"DB에 있는 카드 desc2입니다. 이런저런 테스트를 진행중입니다. 얼마나 길게 쓸 수 있을 까요? ", 

                 relative: "http://www.naver.com",

                 regDate: new Date(now*1-1000*60*60*24*10)

              },

              {

                 _id: cardObjId[2],

                 link: "http://www.naver.com",

                 image: {thumbnail: {file: "card/Koala.jpg", desc: "test", type:"img"}},

                 name: "좋아보이는 UX 연구 2번",

                 type: "mobile",

                 desc:"DB에 있는 카드 desc3입니다. 이런저런 테스트를 진행중입니다. 얼마나 길게 쓸 수 있을 까요? ", 

                 relative: "http://www.naver.com",

                 regDate: new Date(now*1-1000*60*60*24*5)

              },

              {

                 _id: cardObjId[3],

                 link: "http://www.naver.com",

                 image: {thumbnail: {file: "card/Lighthouse.jpg", desc: "test", type:"img"}},

                 name: "협업툴 연구 1번",

                 type: "web",

                 desc:"DB에 있는 카드 desc4입니다. 이런저런 테스트를 진행중입니다. 얼마나 길게 쓸 수 있을 까요? ",

                 relative: "http://www.naver.com",

                 regDate: new Date(now*1-1000*60*60*24*3)

              },

              {

                 _id: cardObjId[4],

                 link: "http://www.naver.com",

                 image: {thumbnail: {file: "card/Tulips.jpg", desc: "test", type:"img"}},

                 name: "좋아보이는 연구 3번",

                 type: "mobile",

                 desc:"DB에 있는 카드 desc5입니다. 이런저런 테스트를 진행중입니다. 얼마나 길게 쓸 수 있을 까요? ", 

                 relative: "http://www.naver.com",

                 regDate: new Date(now*1-1000*60*60*24*2)

              },

              {

                 _id: cardObjId[5],

                 link: "http://www.naver.com",

                 image: {thumbnail: {file: "card/Penguins.jpg", desc: "test", type:"img"}},

                 name: "협업툴 연구 2번",

                 type: "windows",

                 desc:"DB에 있는 카드 desc6입니다. 이런저런 테스트를 진행중입니다. 얼마나 길게 쓸 수 있을 까요? ", 

                 relative: "http://www.naver.com",

                 regDate: new Date(now*1-1000*60*60*24*1)

              },

              {

                 _id: cardObjId[6],

                 link: "http://www.naver.com",

                 image: {thumbnail: {file: "card/Wildlife.mp4", desc: "test", type:"mov"}},

                 name: "Brand New 연구 3번",

                 type: "web",

                 desc:"DB에 있는 카드 desc7입니다. 이런저런 테스트를 진행중입니다. 얼마나 길게 쓸 수 있을 까요? ", 

                 relative: "http://www.naver.com",

                 regDate:new Date()

              }

               ];

// 2. 카드 데이터 등록 완료 시 업체 데이터 등록

db.card.insert(cards, findCard);

clog.info("1. 카드 등록 완료.");

}

//모든 카드명을 출력한다.

function findCard(){

db.card.find({}, {_id: 0, name: 1, regDate: 1}).toArray(function(err, result){

clog.info(result);

clog.info("2. 카드 " + result.length + "건 조회됨.");

});

}


반응형