몽고db에서의 기본 쿼리문을 간단하게 정리합니다.
(공통)데이터베이스 사용 : use 대상
(공통)컬렉션 확인 : show collections
(공통)검색 함수 : db.컬렉션.find()
(공통)갯수 함수 : db.컬렉션.find().count()
#1. 전체 선택 쿼리 : {}
구분 | 몽고DB | 관계형 |
내용 | db.컬렉션.find({}) | select * from collection |
#2. 매칭 쿼리 : {대상 : 값}
* Object형식의 json 값인 경우
- {'target.오브젝트(json)키' : 'A'} 또는 {target : {오브젝트(json)키 : 'A'}}
구분 | 몽고DB | 관계형 |
내용 | db.컬렉션.find({target : 'A'}) | select * from collection where target = 'A' |
#3. in 쿼리 : { 대상 : {$in : [값1, 값2]} }
구분 | 몽고DB | 관계형 |
내용 | db.컬렉션.find({target : {$in : ['A', 'B']}}) | select * from collection where target in ('A', 'B') |
#4. and 쿼리 : {대상1 : 값1, 대상2 : 값2}
구분 | 몽고DB | 관계형 |
내용 | db.컬렉션.find({target : 'A', name : 'B'}) | select * from collection where target = 'A' and name = 'B' |
#5. in 쿼리 : {$or : [ {대상1 : 값1}, {대상2 : 값2} ] }
구분 | 몽고DB | 관계형 |
내용 | db.컬렉션.find({$or : [ {target : 'A'}, {name : 'B'} ] }) | select * from collection where target = 'A' or name = 'B' |
#6. and와 or 조건을 사용
구분 | 몽고DB | 관계형 |
내용 | db.컬렉션.find({$or : [ {target : 'A', name : 'BB'}, number : 3 ] }) | select * from collection where (target = 'A' and name = 'BB') or number = 3 |
db.컬렉션.find({number : 3, $or : [ {target : 'A', name : 'BB'} ] }) | select * from collection where number = 3 and (target = 'A' and name = 'BB') | |
db.컬렉션.find({number : 3, $or : [ {target : 'A'}, {name : 'BB'} ] }) | select * from collection where number = 3 and (target = 'A' or name = 'BB') |
#7. 길이 : {대상1 : 값1, 대상2 : 값2}
구분 | 몽고DB | 관계형 |
큰 | db.컬렉션.find({number : {$gt : 10}}) | select * from collection where number < 10 |
크거나 같은 | db.컬렉션.find({number : {$gte : 10}}) | select * from collection where number <= 10 |
작은 | db.컬렉션.find({number : {$lt : 10}}) | select * from collection where number > 10 |
작거나 같은 | db.컬렉션.find({number : {$lte : 10}}) | select * from collection where number >= 10 |
(배열) 같은 | db.컬렉션.find({이름 : {$size : 10}}) | select * from collection where array.size = 10 |
(배열) 매치 | db.컬렉션.find({'이름.10' : {$exists : true}}) | select * from collection where array.size = 10 |
#8. like 쿼리 : {대상 : {$regex : 값} }
* 배열이면서 Object형식의 json 값인 경우
- elemMatch 연산자를 사용한 경우 : {array : {$elemMatch : { text : {$regex : 'abcd'}}}}
- elemMatch 연산자를 사용안한 경우 : {'array.text' : { $regex : 'abcd' }}
구분 | 몽고DB | 관계형 |
내용 | db.컬렉션.find({text : {$regex : 'abcd'} }) | select * from collection where text like '%abcd%' |
#9. not 쿼리 : {대상 : {$ne : 값} }
구분 | 몽고DB | 관계형 |
내용 | db.컬렉션.find({text : {$ne : 'abc'} }) | select * from collection where text != 'abc' |
#10. (배열에서의 부정) not 쿼리 : {$nor: [ {대상1: 값1}, {대상2: 값2} ]}
구분 | 몽고DB | 관계형 |
내용 | db.컬렉션.find({$nor: [ {name: 'abcd'}, {num: 7} ]}) | select * from collection where name != 'abcd' and num != 7 |
#11. 도큐먼트(Document)필드 존재여부(false는 부정) : {대상필드키 : {$exists : true} }
구분 | 몽고DB | 관계형(mysql 기준) |
내용 | db.컬렉션.find({text : {$exists : true} }) | SELECT * FROM information_schema.COLUMNS where COLUMN_NAME = 'text' |
#12. is null : {대상 : null }
구분 | 몽고DB | 관계형 |
내용 | db.컬렉션.find({text : null }) | select * from collection where text is null |
#12. 조회결과 특정필드 선택: { 검색대상 : 조건값 }, { 필드1: 1, 필드2: 1 }
구분 | 몽고DB | 관계형 |
내용 | db.컬렉션.find({ level : "A" }, { name: 1, num: 1 } ) | select _id, name, num from collection where level = 'A' |
간단하게 정리한 몽고DB에서의 기본 쿼리모음 이였습니다.
틀린부분 또는 궁금한점은 언제든 연락주세요! 👻
'몽고DB' 카테고리의 다른 글
MongoDB insert collection to collection(몽고DB 컬렉션에서 컬렉션 저장하기) (0) | 2022.07.20 |
---|---|
몽고DB csv 출력, mongodb export csv (0) | 2020.11.25 |
몽고DB에서의 Aggregate 사용시 lookup과 인덱스(index) (2) | 2020.06.23 |
MongoDB Timezone (MongoDB 시간, MongoDB TimeStampFormat) (2) | 2019.09.25 |
몽고db 특징 간단 정리 (버전은 3.x.x 이하) (0) | 2019.07.31 |
댓글