본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


몽고DB

[기본] MongoDB find query(몽고DB 검색)

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2021. 12. 21.

 

몽고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에서의 기본 쿼리모음 이였습니다.

틀린부분 또는 궁금한점은 언제든 연락주세요! 👻

반응형
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글