MongoDB Query
데이터베이스 조회 show dbs; use test;
mongotop
- 각 collection별 read write 속도 모니터링
- mongodb 서버에서 query 응답이 느리다면, 어떤 컬렉션에 문제가 발생하고 있는지 확인할 수 있음
- ./mongotop –host localhost –port 27017 -u user -p ‘password’ –authenticationDatabase admin mongostat
- query 실행 모니터링
- DB 인스턴스의 각각 수행되고 있는 query 수와 network 사용량 등을 모니터링
- 실행 샘플 : ./mongostat –host localhost –port 27017 -u user -p ‘password’ –authenticationDatabase admin
컬랙션
- RDB의 Table과 같은 개념으로 데이터를 저장하는 단위
- 하지만 RDB와 다르게 스키마를 정의하고 이에 맞는 데이터만 저장되지만, MongoDB는 모든 종류의 데이터 저장할 수 있음 -> schemaless 특징 있음
컬렉션(데이터 저장하는 단위) 조회 show collections;
Javascript 명령 지원
- 변수 생성 및 사칙 연산
- a=5; a*10;
- for(i=0; i<10; i++) {print(‘hello’)};
JSON 형태 데이터 저장
- var a = {age:25};
- var n = {name:‘Ed’, language:[‘c’, ‘ruby’, ‘js’]};
- var student = {name:‘Jim’, scores:[75, 99, 87.2]};
저장
- {DB}.{collection}.save({a:99})
- db.scores.save({a:99});
- db.scores.find();
- _id는 자동 생성 됨
반복 저장
- for(i=0; i<10; i++) {db.scores.save({a:i, exam:5});};
- db.scores.find();
조회
- 모든 데이터 조회 -> 매개변수 없음 : db.scores.find();
- 특정 데이터 조회 -> 매개변수는 JSON형식
: a가 2인 도큐먼트만 찾아라
- db.scores.find({a:2}); : a가 15보다 큰거 찾아라
- db.scores.find({a:{'$gt':15}});
- find AND 연산 - a가 2보다 크고 4보다 작은 : db.scores.find({a:{'$gte':2, ‘$lte’:4}});
- find IN 명령 - 배열로 와야함 : db.scores.find({a:{'$in':[2,3,4]}}); : db.scores.find({a:{'$nin':[2,3,4]}});
- find OR 명령 : db.scores.find({$or:[{‘a’:{$lt:1}},{‘a’:{$gt:9}}]});
- 필드 존재 유무 exam 키 가지고 있는 : db.scores.find({exam:{$exists:true}});
- 반환 필드 선택 - a, exam 출력, _id 출력 안함 : db.scores.find({}, {a:1, exam:2, _id:0});