Notepad
이력관리
dev/DB 2022. 3. 22. 00:47

이력관리 작성중... 점 이력 데이터의 변경이 발생한 시점만을 관리 선분 이력 시작 시점과 종료 시점을 관리 과거 특정 시점의 데이터를 조회하는 요건이 많을 때 조회 성능을 고려한 방법 선분 이력 관리 유형 인스턴스 레벨 이력 관리 하나의 인스턴스의 어떤 변경이라도 발생하면 전체 인스턴스를 새롭게 생성하는 방식의 이력 관리 유형 속성 레벨 이력 관리 이력을 관리할 대상 속성에서 변화가 생길 때만 이력을 생성하는 방식 주제 레벨 이력 관리 내용이 유사하거나 연동될 확률이 높은 것별로 인스턴스 레벨 이력을 관리하는 방법 선분 이력에서 종료점 처리 시 주의사항 종료점이 미정이므로 NULL 논리적으로는 타당하지만 비교가 불가능 인덱스를 사용하지 못하므로 수행 속도 저하 수렴하므로 최대치 부여 아직 종료되지 않았..

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: ..