MongoDB에 연산자와 복합 Query를 사용해서 데이터를 읽어보자

Jamie·2020년 12월 3일
0

MongoDB

목록 보기
8/8
post-thumbnail

선행작업

mongoDB 접속

$ mongosh mongodb://localhost:27017/admin?authSource=admin --username jamie

데이터 추가 MongoDB에 여러 데이터를 넣어보자(Insert & Import)

testDB 접근

$ mongosh mongodb://localhost:27017/testDB?authSource=admin --username jamie
Enter password: ***********

> use testDB
switched to db testDB

연산자를 이용하기

$lt 연산자(보다 작음)

> myCursor = db.inventory.find( { status: "A", qty: { $lt: 30 } } )
[
  {
    _id: ObjectId("5fc73f0993426845fee7ba69"),
    item: 'journal',
    qty: 25,
    size: { h: 14, w: 21, uom: 'cm' },
    status: 'A'
  }
]

복합 쿼리 사용하기

OR

> myCursor = db.inventory.find( { $or: [ { status: "A" }, { qty: { $lt: 30 } } ] } )
[
  {
    _id: ObjectId("5fc73f0993426845fee7ba69"),
    item: 'journal',
    qty: 25,
    size: { h: 14, w: 21, uom: 'cm' },
    status: 'A'
  },
  {
    _id: ObjectId("5fc73f0993426845fee7ba6a"),
    item: 'postcard',
    qty: 45,
    size: { h: 10, w: 15.25, uom: 'cm' },
    status: 'A'
  },
  {
    _id: ObjectId("5fc73f0993426845fee7ba6b"),
    item: 'notebook',
    qty: 50,
    size: { h: 8.5, w: 11, uom: 'in' },
    status: 'A'
  }
]

AND

  • AND의 경우 OR과 다르게 명시적이 아니라 묵시적으로 많이 사용(,로 이어붙여서)

연산자 + 복합 쿼리 사용하기

AND + $or + %lt + 정규식

> myCursor = db.inventory.find( {
...      status: "A",
...      $or: [ { qty: { $lt: 30 } }, { item: /^p/ } ]
... } )
[
  {
    _id: ObjectId("5fc73f0993426845fee7ba69"),
    item: 'journal',
    qty: 25,
    size: { h: 14, w: 21, uom: 'cm' },
    status: 'A'
  },
  {
    _id: ObjectId("5fc73f0993426845fee7ba6a"),
    item: 'postcard',
    qty: 45,
    size: { h: 10, w: 15.25, uom: 'cm' },
    status: 'A'
  }
]
  • ,로 묵시적 AND조건 사용
  • $or로 명시적 OR조건 사용
  • $lt로 보다 작음 조건 사용
  • 정규식 /^p/ 사용
    • MongoDB는 정규식 지원

출처

MongoDB 공식 가이드 - https://docs.mongodb.com/guides/server/read_operators/

profile
성장중인 제이미입니다.

0개의 댓글