본문 바로가기

DB/MongoDB

[MongoDB] 9. 쿼리작성하기 - 연산자로 쿼리하기

728x90
반응형

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:"비교할 값"}})
db.inventory.find({item:{$eq:"hello"}}) // item의 value가 hello 인 도큐먼트들 출력
  • $ne
// db.컬렉션.find({필드: {$ne:"비교할 값"}})
db.inventory.find({item:{$ne:"bye"}}) // item의 value가 bye가 아닌 도큐먼트 출력
  • $gt
// db.컬렉션.find({필드:{$gt:비교할 값}}) 
db.by_type.find({"city_or_province":"서울","type":"차대차","accident_count":{$gt:2000}})
// city_or_province가 서울이고, type이 차대차이고 accident_count가 2000보다 큰 도큐먼트 출력
  • $gte
// db.컬렉션.find({필드:{$gte:비교할 값}}) 
db.by_type.find({"city_or_province":"서울","type":"차대차","accident_count":{$gte:1800}})
// city_or_province가 서울이고, type이 차대차이고 accident_count가 1800이상인 도큐먼트 출력
  • $lt
// db.컬렉션.find({필드:{$gt:비교할 값}}) 
db.by_type.find({"city_or_province":"서울","type":"차대차","accident_count":{$lt:600}})
// city_or_province가 서울이고, type이 차대차이고 accident_count가 600보다 작은 도큐먼트 출력
  • $lte
// db.컬렉션.find({필드:{$gt:비교할 값}}) 
db.by_type.find({"city_or_province":"서울","type":"차대차","accident_count":{$lte:550}})
// city_or_province가 서울이고, type이 차대차이고 accident_count가 550이하인 도큐먼트 출력
  • $in
 // db.컬렉션.find({필드:{$in:[값1,...]}})
 db.inventory.find({tags:{$in:["red"]}})
 // tags에 red가 있는 도큐먼트 출력

  • $nin
 // db.컬렉션.find({필드:{$nin:[값1,...]}})
 db.inventory.find({tags:{$nin:["black","blue"]}})
 // tags에 black, blue가 둘다 없는 도큐먼트 출력
728x90
반응형