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

mongo DB 로컬 설치, robomongo 설치, import sample json

by pub-lican-ai 2017. 1. 5.
반응형

 mongo DB 로컬 설치, robomongo 설치,  import sample json  #mongodb #robomongo


[MongoDB 설치]

1. OS에 맞는 설치 파일 다운로드

https://www.mongodb.com/download-center?jmp=nav#community


2. Next - I accept 클릭 Next - Complete 버튼 클릭 - Install 클릭


3. 데이터 대상 폴더 생성 (이름과 대상 위치는 변경 가능)

D:\mongodb\data

D:\mongodb\log


4. mongoDB 설정 파일 생성 및 편집

(MongoDB서버설치경로)\bin\mongod.cfg 파일 생성 및 메모장으로 열어 아래 내용 입력 후 저장 -> 설치시 3번 수행된 폴더로 저장됨.

systemLog:

    destination: file

    path: D:/mongodb/log/mongod.log

storage:

    dbPath: "D:/mongodb/data"

    directoryPerDB: true

    journal:

        enabled: true


5. 관리자권한으로 cmd창 열어 mongoDB 실행하기

>cd C:\Program Files\MongoDB\Server\3.4\bin

C:\Program Files\MongoDB\Server\3.4\bin>mongod -f D:\mongodb\mongod.cfg


5-1. mongoDB실행 시 cfg파일이 아닌 data 폴더 경로 지정하여 실행하기(option)

mongod --dbpath D:\mongodb\data


5-2. 관리자권한 배치batch파일 만들기(option)

위 mongoDB 실행하는 batch파일

1) 메모장 - "c:\Program Files"\MongoDB\Server\3.4\bin\mongod.exe -f d:\mongodb\congod.cfg 

입력 후 다른이름으로 저장 - mongod.bat으로 저장

2) bat파일 우클릭 - 바로가기 만들기 - 바로가기 파일 우클릭 - 속성 - 바로가기 탭 - 고급 - 관리자 권한으로 실행 - 확인


6. 관리자권한으로 또 다른 cmd창 열어 mongo shell 실행하기

>cd C:\Program Files\MongoDB\Server\3.4\bin

C:\Program Files\MongoDB\Server\3.4\bin>mongo

아래와 같이 나타난다면 shell을 통해 연결 성공


MongoDB shell version v3.4.1

connecting to: mongodb://127.0.0.1:27017

MongoDB server version: 3.4.1

Server has startup warnings:

2017-01-05T16:38:15.022+0900 I CONTROL  [initandlisten]

2017-01-05T16:38:15.022+0900 I CONTROL  [initandlisten] ** WARNING: Access contr

ol is not enabled for the database.

2017-01-05T16:38:15.022+0900 I CONTROL  [initandlisten] **          Read and wri

te access to data and configuration is unrestricted.

2017-01-05T16:38:15.022+0900 I CONTROL  [initandlisten]

2017-01-05T16:38:15.022+0900 I CONTROL  [initandlisten] Hotfix KB2731284 or late

r update is not installed, will zero-out data files.

2017-01-05T16:38:15.023+0900 I CONTROL  [initandlisten]

>


[mongoDB Shell 기본 명령어]

// 현재 DB 삭제

db.runCommand({dropDatabase: 1});


// 등록할 회원 정보

var m1 = {name: "kim", age: 20};

var m2 = {name: "lee", age: 20};

var m3 = {name: "admin", age: 35};


// TODO 1. member 컬렉션에 데이터 등록

// insert({등록할 문서})

db.member.insert(m1);

db.member.insert([m2,m3]);


// TODO 2. member 컬렉션 조회

// find()

db.member.find();


// TODO 3. 회원 조회(나이가 20인 회원 조회)

// find({검색조건})

db.member.find({name:"kim"});

db.member.find({age:20, name:"lee"});


// TODO 4. 회원 조회(1건)

// findOne()

db.member.findOne({age:20});


// TODO 5. 회원 수정(kim의 나이 수정)

// update({검색조건}, {수정할 문서})

// 지정한 문서 전체를 수정하기 때문에 name:"kim"이 날아감

db.member.update({name:"kim"},{age:21});


// 지정한 속성만 수정할 경우

db.member.update({name:"kim"},{"$set": {age:21}});


// 지정한 속성을 증가시킬 경우

db.member.update({age:20},{"$inc": {age:1}},{multi:true});


// TODO 6. kim 삭제

// remove({검색 조건})

db.member.remove({age:22});



[robomongo 설치]

 robomongo - mongo Shell보다 쉽게 쿼리 다룰 수 있는 툴


1. 아래 링크에서 다운로드 - installer 버전 선택 후 다운로드 실행

 https://robomongo.org/download


2. Next - 동의함 - Next - 설치 - 실행


3. Create 클릭 - Connection 탭의 Name에 'dev' 입력후 Save


4. 생성된 dev connection을 선택 후 Connect 버튼 클릭


5. 왼쪽 탐색기에서 dev 우클릭 - Open Shell 선택하여 Shell 창 띄운 후 

아래 테스트 스크립트 실행 - 라인별로 드래그 하여 F5 또는 Ctrl + Enter로 실행 가능

db.dev.drop()  //collection drop

db.dev.insertMany( //insert

[

     {

       _id: 1,

       name: "david",

       age: 34,

       type: 1

     },

     {

       _id: 2,

       name: "martin",

       age: 42,

       type: 1

     }

     ]

)

db.dev.find( {} )  //test

db.dev.find( { type: { $in: [2] } } )  //type이 2인 데이터

db.dev.find( { type: 1, age: { $lt: 40 } } ) //type이 1이고 age가 40이하인 데이터


[Import sample json 파일]


1. 샘플 json 파일 다운로드 (아래 링크 다른 이름으로 저장 - 저장위치 : D:\mongodb\primer-dataset.json)

https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json


2. 관리자권한으로 cmd창 열어 mongoimport 실행

>cd C:\Program Files\MongoDB\Server\3.4\bin

C:\Program Files\MongoDB\Server\3.4\bin>mongoimport --db test --collection restaurants --drop --file D:\mongodb\primer-dataset.json

아래와 같이 표시되면 import 완료

2017-01-05T17:28:58.091+0900    connected to: localhost

2017-01-05T17:28:58.215+0900    dropping: test.restaurant

2017-01-05T17:28:59.195+0900    imported 25359 documents


3. robomongo에서 확인


4. 생성된 test db 우클릭 - Open Shell하여 아래 스크립트 실행

db.getCollection('restaurants').find({}) //전체 조회

db.getCollection('restaurants').count()  //name field가 존재하고 field값이 공백이 아닌 document를 name field 기준 오름차순으로 조회

db.restaurants.find({name:{"$exists":true, $ne:""}}).sort({name:1}) //cuisine field값에 'Bagels' 문자열이 포함된 document를 name field 기준 내림차순으로 조회

db.restaurants.find({cuisine:/Bagels/}).sort({name:1}) //borough field값에 대한 중복제거

db.restaurants.find({"address.zipcode":"11224", "address.building":"2780"}) //address document field에 포함된 child document field 값이 일치하는 document를 조회

db.restaurants.find({"grades.grade":"A"}) //grades document field에 포함된 child array에 포함된 document의 grade field값중 'A' 를 포함하는 document를 조회



 *일부 내용 출처: http://korn123.blog.me/220863836729 http://korn123.blog.me/220863836729


반응형