Notepad
MongoDB - 인덱스1
dev/DB 2021. 12. 23. 13:34

8. 인덱싱과 쿼리 최적화 8.1 인덱싱의 이론적 고찰 책의 목차와 같이 찾고자 하는 데이터를 빠르게 찾기 위한 것 단순 인덱스 단일 키에 대해 생성한 인덱스 복합 인덱스 둘 이상의 키를 사용하여 생성한 인덱스 키 순서 중요 인덱스 효율 인덱스에는 비용이 발생하니 조심히 생성 삽입 연산을 수행할 때 마다 새 도큐먼트가 인덱스가 포함되도록 수정 8.2 인덱싱의 실제 8.2.1 인덱스 타입 인덱스에 B-트리 인덱스가 사용되며 몇가지 특성을 적용할 수 있음 고유 인덱스 필드의 해당 도큐먼트에 고유한 키임을 보장하기 위해 사용 unique 옵션을 지정해서 사용 // 고유 인덱스 생성 db.users.createIndex({ username: 1}, { unique: true }); 희소 인덱스 null이 아닌 ..

MongoDB - 업데이트, 원자적 연산, 삭제
dev/DB 2021. 11. 11. 09:35

업데이트, 원자적 연산, 삭제 1. 도큐먼트 업데이트 MongoDB의 도큐먼트 업데이트 방법 도큐먼트 전체 대치 업데이트 연산자를 이용하여 도큐먼트 특정 필드 수정 1.1 대치에 의한 수정 user_id = ObjectId("4c4b1476238d3b4dd5003981"); doc = db.users.findOne({_id: user_id}); // 1.도큐먼트 조회 doc['email'] = 'mongodb-user@mongodb.com'; // 2.조회한 도큐먼트에 대한 수정 db.users.update({_id: user_id}, doc); // 3.수정한 도큐먼트로 대치 여러 사용자가 동일한 도큐먼트를 업데이트하는 경우 마지막으로 쓰기 연산이 수행된 내용이 저장 1.2..

MongoDB - 집계2
dev/DB 2021. 11. 4. 13:26

집계 1.도큐먼트 재구성 집계 파이프라인은 도큐먼트를 변형하여 출력 도큐먼트를 생성하는데 사용할 수 있는 다양한 함수 제공 1.1 문자열 함수 $concat : 두 개 이상의 문자열을 단일 문자열로 연결 $strcasecmp : 대/소문자를 구분하지 않는 문자열 비교를 하며, 숫자를 반환 $substr : 문자열의 부분 문자열 반환 $toLower : 문자열을 모두 소문자로 변환 $toUpeer : 문자열을 모두 대문자로 변환 예시 db.users.aggregate([ {$match: {username: 'kbanker'}}, {$project: { name: {$concat:['$first_name', ' ', '$last_name']}, // 공백으로 연결 firstInitial: {$substr: ..

MongoDB - 집계1
dev/DB 2021. 10. 28. 13:25

집계 MongoDB는 집계를 수행하는 세 가지 방법을 제공 집계 파이프라인 Map-reduce(5.0 버전부터 사용 X) 단일 목적 집계 연산 1. 집계 프레임워크 개요 1.1 집계 프레임워크 개요 파이프라인의 각 단계에서의 출력이 다음 단계로의 입력으로 제공되는 집계 파이프라인을 정의 집계 파이프라인 작업 요약 $project: 출력 도큐먼트상에 배치할 피드를 지정 $match: 처리될 도큐먼트를 선택하는 것(find() 와 비슷한 역할을 수행) $limit: 다음 단계에 전달될 도큐먼트의 수를 제한 $skip: 지정된 수의 도큐먼트를 건너뜀 $unwind: 배열을 확장하여 각 배열 항목에 대해 하나의 출력 도큐먼트를 생성 $group: 지정된 키로 도큐먼트를 그룹화 $sort: 도큐먼트를 정렬 $ge..