MongoDB - Document Query(조회) - (1)

2021. 12. 18. 09:46·Database/MongoDB
728x90
💡 MongoDB 공식 문서를 참고해서 작성하였다.

참고 : https://docs.mongodb.com/manual/tutorial/query-documents/

 

Query Documents

주어지는 예시를 통해서 db.collection.find() method를 mongosh에서 실행할 것이다.

일단 insertMany()를 통해 inventory라는 collection에 document들을 추가한다.

db.inventory.insertMany([
   { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
   { item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "A" },
   { item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
   { item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
   { item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" }
]);
  • Collection에서의 모든 documents들을 선택하는 법
      db.inventory.**find( {} )**
    SQL
  • SELECT * FROM inventory
  • MongoDB
  • 특정한 값을 찾는 법(등식 조건 지정)
      { <field1>: <value1>, ... }
    ex) inventory 컬렉션에서 status가 “D”인 document
      //SQL에서는
      SELECT * FROM inventory WHERE status = "D"
  • db.inventory.find( { status: "D" } )
  • MongoDB
  • 쿼리 연산자를 사용하여 조건 지정
      { <field1>: { <operator1>: <value1> }, ... }
    ex) inventory 컬렉션에서 검색
    • 참고
      • $or연산자를 사용해 쿼리 표현 가능하지만 동일한 필드에 대해 동등성 검사를 수행할 때 $in 연산자를 사용한다.
      SQL
    • SELECT * FROM inventory WHERE status in ("A", "D")
  • db.inventory.find( { status: { $in: [ "A", "D" ] } } )
  • MongoDB
  • AND 조건 지정
    • 복합 쿼리는 컬렉션 document에서 둘 이상의 필드에 대한 조건을 지정할 수 있다. 논리적 AND 연결은 복합 쿼리의 절을 연결하여 쿼리가 컬렉션에서 모든 조건과 일치하는 문서를 선택하도록 한다.
    • ex) inventory 컬렉션에서 status 가 “A”이고 qty는 30 미만인 document검색 → compass쿼리 표시줄에서 작동.
    • $lt → 미만SQL
    • SELECT * FROM inventory WHERE status = "A" AND qty < 30
    • db.inventory.find( { status: "A", qty: { $lt: 30 } } )
  • OR 조건 지정
    • $or 연산자를 사용하면 쿼리가 컬렉션에서 최소한 하나의 조건과 일치하는 document를 선택하도록 논리적 연결로 각 절을 join하는 복합 쿼리를 지정할 수 있다.
      db.inventory.find( { $or: [ { status: "A" }, { qty: { $lt: 30 } } ] } )
      SQL
    • SELECT * FROM inventory WHERE status = "A" OR qty < 30
    • MongoDB
  • AND 그리고 OR 조건 지정
      db.inventory.find( {
           status: "A",
           $or: [ { qty: { $lt: 30 } }, { item: /^p/ } ]
      } )
    SQL
    • 참고
      • MongoDB는 $regex 문자열 패턴 일치를 수행하는 정규식 쿼리를 지원한다.
  • SELECT * FROM inventory WHERE status = "A" AND ( qty < 30 OR item LIKE "p%")
  • ex) status : “A” 그리고 qty 30이하 또는 item 중 p문자로 시작하는 것
728x90
반응형

'Database > MongoDB' 카테고리의 다른 글

MongoDB - 배열 쿼리 - (1)  (1) 2021.12.19
MongoDB - Document Query(조회) - (2)  (2) 2021.12.18
MongoDB - Database/Collection/Document생성,제거  (0) 2021.12.18
MongoDB - 데이터 모델링  (1) 2021.12.18
MongoDB 소개, 설치  (0) 2021.12.17
'Database/MongoDB' 카테고리의 다른 글
  • MongoDB - 배열 쿼리 - (1)
  • MongoDB - Document Query(조회) - (2)
  • MongoDB - Database/Collection/Document생성,제거
  • MongoDB - 데이터 모델링
pink_salt
pink_salt
유익함을 주는 개발자가 되도록 keep going
  • pink_salt
    KeepGoingForever
    pink_salt
  • 전체
    오늘
    어제
    • 분류 전체보기 (117)
      • Project (7)
      • WEB study (3)
        • WEB(Springboot) (10)
        • Git, GitLab (13)
        • Clean code (1)
        • FrontEnd (3)
      • Study (21)
        • Algorithm (19)
        • 면접 준비 (2)
      • Cloud Computing (2)
        • AWS (2)
      • 프로그래밍 언어 (35)
        • Java (29)
        • Python (0)
        • javascript (6)
      • 운영체제 (0)
        • Linux (0)
      • Database (4)
        • MongoDB (8)
        • SQL (8)
      • 애플리케이션 개발 (1)
        • Android (1)
      • AI (1)
        • Deeplearning (1)
        • machinelearning (0)
      • Daily (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    언어
    IT교육
    코딩강의
    무료IT교육
    Java
    codepresso
    SWEA
    대외활동
    개념
    SW
    코딩이러닝
    spring boot
    백준
    Query
    mysql
    빅오표기법
    티스토리챌린지
    Git
    python
    자바
    MongoDB
    무료코딩교육
    gitlab
    오블완
    git branch
    Database
    dp
    BFS
    객체지향
    코드프레소
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
pink_salt
MongoDB - Document Query(조회) - (1)
상단으로

티스토리툴바