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
[출처] mongoDB 설치 ㅅ및 CRUD 예제|작성자 Hanjoong
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
'Development > NodeJS' 카테고리의 다른 글
postgresql 설치, db, table 생성, pg-promise로 연결, counter구현 (0) | 2017.02.03 |
---|---|
ejs 활용, mongoose 데이터 연동, simple counter 구현 (0) | 2017.01.25 |
static 폴더 설정, CSS 적용 (0) | 2016.12.19 |
node, atom, express, nodemon 설치 및 helloworld (0) | 2016.12.05 |