MongoDB (18) 썸네일형 리스트형 [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 정규 표현식 .. [MongoDB] 9. 쿼리작성하기 - 연산자로 쿼리하기 MogoDB의 쿼리 구조 특징 MongoDB의 쿼리는 객체 형태로 작성한다. SQL보다는 가독성이 떨어짐 값으로 쿼리하기 //db.컬렉션.find({필드:값}) db.container.find({"name":"가위","price":3000}) 연산자로 쿼리하기 //db.컬렉션.find({필드:{연산자:값}}) db.container.find( { height : {$gte : 175 } } ) // height >= 175 쿼리에 사용되는 비교연산자들 연산자 설명 $eq 같다 $ne 같지 않다 $gt 크다 $gte 크거나 같다 $lt 작다 $lte 작거나 같다 $in 하나라도 있는 경우 출력 $nin 하나도 없는 경우 출력 비교 연산자 연습 $eq // db.컬렉션.find({필드: {$eq:"비교할 값.. 이전 1 2 3 4 다음 목록 더보기