Day16-3 MongoDB Cursor, MongoDB 연습 문제2
커서(Cursor)
- 커서란?
- 테이블에서 여러 개의 행을 쿼리한 후에 쿼리의 결과인 행 집합을 한 행씩 처리하기 위한 방식
- 커서의 초기값은 첫 번째 행 이전을 가리킴
- next()를 이용하여 다음행으로 이동하여 해당 행의 값을 반환
- 도큐먼트 준비
for(i=0; i<100; i++0) { db.foo.insertOne({x:i}); }
- 커서 생성
var cursor = db.foo.find();
- 데이터 fetch
while(cursor.hasNext()){ obj = cursor.next(); print(obj.x); } // 0부터 99까지 콘솔에 출력
연습문제
인덱싱 : 검색을 위해 , 읽기를 빠르게 하기 위해
인덱스 생성해서 걸리는 시간 비교하기
- db.users.find({userid:20300})
263 9
db.users.createIndex({userid:-1}) userid_-1
- db.users.find({score:53})
270 16
db.users.createIndex({score:1}) score_1
- db.users.find({userid:{$gt:3333}})
274 633
db.users.createIndex({userid:-1}) userid_-1
- db.users.find({userid:11111}).sort({score:1})
277 9
db.users.createIndex({userid:1, score:1}) userid_1_score_1
- db.users.find({userid:1222, score:{$gt:22}})
265 0
db.users.createIndex({userid:1, score:1}) userid_1_score_1'
- db.users.find({score:{$gt:22},age:22})
270 13
db.users.createIndex({score:1, age:1}) score_1_age_1
- db.users.find({userid:2222, score:{$gt:22}, age:22})
271 11
db.users.createIndex({userid:-1, score:1, age:1}) userid_-1_score_1_age_1