본문 바로가기

728x90
반응형

DB/MongoDB

(19)
[MongoDB] 14. 집계명령어 - 고급 스테이지, 여러가지 스테이지 누산기(accumulator) 객체 여러 도큐먼트에서 찾은 필드로 부터 값을 "계산"하는 객체이다. MongoDB 3.2 이전에는 $group 스테이지에서만 누산기 객체를 사용했지만, 이후에는 $project 스테이지에서도 배열안에서 작동한다. 원본 // 컬렉션 rating db.rating.find() $max 그룹에서 해당 필드의 최댓값을 반환 db.rating.aggregate([ { $group:{"_id":"$rating","max_user_id":{$max:"$user_id"}} } ]) $min 그룹 필드에서 해당 필드의 최솟값을 반환 db.rating.aggregate([ { $group:{"_id":"$rating","min_user_id":{$min:"$user_id"}} } ]) $s..
[MongoDB] 13. 집계명령어 - aggregate, $project, $match, $group MySQL의 집단 함수들 GROUP BY - COUNT(), MAX(), MIN(), SUM(), AVG() 여러개의 row를 그룹화(group by)하여 숫자를 세거나 평균을 구하는 등의 기능을 하는 함수이다. 집계 명령어의 필요성 기존의 find로는 원하는 데이터를 가공하는데 한계가 있다. 빅데이터를 다루려면 새로운 데이터 가공 방식이 필요하다. MongoDB의 aggregation을 사용하여 grouping, fitering 등 다양한 연산을 적용할 수 있다. MongoDB의 집계 방법론 데이터베이스의 모든 정보를 불러와 어플리케이션에서 집계하는 방법이다. 1) 맵 - 리듀스 Javascript 함수를 정의하여 그 함수를 호출하여 집계한다. map 함수와 reduce 함수를 정의하여 mapReduc..
[MongoDB] 12. 쿼리작성하기 - 정규 표현식, 문자열 연산자, Cursor, $(배열 위치 연산자), $where 연산자 정규 표현식 MongoDB에서 정규 표현식을 사용하여 원하는 도큐먼트를 선택할 수 있다. // db.컬렉션.find({필드:/정규표현식/}) db.area.find({county:/시$/}).count() // 시로 끝나는 county 도큐먼트의 개수 정규 표현식 사용을 위한 메타 문자 메타문자 설명 예시 * 앞의 문자를 0개 이상 찾음 zo* --> z, zo, zoo,zooo + 앞의 문자를 1개 이상 찾음 zo+ --> zo, zoo, zooo ? 앞의 문자를 0개나 1개 찾음 zo? --> z,zo ^ ^문자열 : 문자열로 시작하는 것을 다 찾음 ^[^문자열] : 문자열로 시작하는 것을 제외하고 다 찾음 ^박 : 박, 박수 ^[^박] : 홍길동, 김철수 $ $문자열 : 문자열로 끝나는 것을 다 찾..
[MongoDB] 11. 쿼리작성하기 - 배열 요소,배열 연산자로 쿼리하기 MongoDB에서 배열 요소로 쿼리를 할 수 있다. //db.컬렉션.find({필드:배열 요소}) or db.컬렉션.find({필드:[배열 요소들]}) db.inventory.find({tags:"red"},{_id:false}) db.inventory.find({tags:["red","blank"]},{_id:false}) MongoDB에서 배열 연산자를 통한 쿼리를 할 수 있다. 배열 연산자 종류 연산자 설명 $all 순서와 상관없이 요소가 모두 포함되면 선택 $elemMatch 매치 조건과 맞는 요소를 가진 도큐먼트 반환(범위 질의 가능) $size 해당 배열의 크기가 같은 도큐먼트 선택 $slice 배열의 부분 집합을 반환 $all // db.컬렉션.find(필드:{$all:[요소들]}) db.i..
[MongoDB] 10. 쿼리작성하기 - 타입, 논리 연산자로 비교하기 MongoDB는 데이터 타입만으로 크기를 비교할 수 있다. ex. 문자열(4byte)과 배열(6byte)을 비교하면 배열이 더 크다고 판단. MongoDB의 데이터 타입, 밑으로 내려갈 수록 비교 순서 큼 타입 설명 MinKey 모든 값보다 작은 값 Null null 값 Numbers 4byte ~ 8byte, 정수, 실수 Symbol, String UTF-8 문자열 Object 객체(도큐먼트) Array 배열 BinData 이진(바이너리) 데이터 ObjectId 문서용 12byte ID, RDB의 PK와 같은 개념 Boolean true, false 값 저장 Data 1970년 1월1일 부터의 시간을 1/1000초 단위로 저장 TimeStamp 타임스탬프 Regular Expression 정규 표현식 ..

728x90
반응형