본문 바로가기
[ Developer ]/MongoDB

[MongoDB] 몽고디비 논리 연산 쿼리

by 김현섭. 2016. 6. 26.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
MongoDB 논리 연산 쿼리
@ 논리 연산자

숫자 비교 연산자와 비슷하게 키워드로 논리 연산자를 이용할 수 있다


다음과 같이 사용될 수 있다
  • 사는지역이 광역시인 모든 것.
    • db.c.find( { “city” : { “$in” : [ “서울”, “대전“ , “대구”, “부산“, “울산“, “인천”, “광주” ] } } )
  • 사는지역이 광역시 이거나, 제주도 인 모든 것
    • db.c.find( { “$or” : [
    •   “city” : {
    •   “$in” : [ “서울”, “대전“ , “대구”, “부산“, “울산“, “인천”, “광주” ]
    •   },
    •   { “city” : “제주” }
    •   ] } )
  • 태어난 해가 짝수해 인 모든 것 : birthYear를 2로 나눈 나머지 값이 1이 아닌 모든 것
    • db.c.find( { “birthYear” : { “$not” : { “$mod” : [ 2, 1 ] } } } )

OR 사용 방식
  • $or는 약간 사용 방식이 다른 것을 볼 수 있다
  • 다른 조건들은 앞에 Key를 갖고 뒤에 조건이 붙지만 $or는 키보다 앞에 붙는다
  • -> 다른 키를 조건으로 참조할 수 있기 때문에

@ 논리 연산자 실습
  1. ID가 15이거나 "subject"가 "Hello19988" 인 것
    • db.post.find( { "$or" : [ { "id" : 15 }, { "subject" : "Hello19988" } ] });
      • 실행 결과
  2. ID가 짝수 인 것
    • db.post.find( { "id" : { "$not" : { "$mod" : [ 2, 1 ] } } } );
    • $mod는 나머지를 구하는 것이고 2로 나눠 1이 아닌 것 즉 짝수를 의미한다
      • 실행 결과
    • db.post.find( { "id" : { "$mod" : [2, 0] } } );
    • 위의 방식을 응용하면 더욱 간단하게 할 수 있다 2로 나눠 0인 것 즉 짝수를 찾을 수 있다
      • 실행 결과