MongoDB_Query
MongoDB 데이터(Document) 조회
- 아래와 같은 데이터가 적재되어 있다고 가정 (collection Name : inventory)
[ { "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" } ]
전체 조회
db.inventory.find()
equal 조건 조회
db.inventory.find({status : "D"})
in 조건 조회
db.inventory.find({ status: { $in: [ "A", "D" ] } })
여러개의 and 조건
db.inventory.find({ status: "A", qty: { $lt: 30 } })
여러개의 or 조건
db.inventory.find({ $or: [ { status: "A" }, { qty: { $lt: 30 } } ] }})
여러개의 And 와 or 혼합 조건
db.inventory.find({ status: "A", $or: [ { qty: { $lt: 30 } }, { item: /^p/ } ] })
조회 조건 예시 (Mysql vs mongoDB)
SELECT * FROM inventory WHERE status = "D"
VS{ status: "D" } ... }
SELECT * FROM inventory WHERE status in ("A", "D") VS
{ status: { $in: [ "A", "D" ] } }
SELECT * FROM inventory WHERE status = "A" AND qty < 30
VS{ status: "A", qty: { $lt: 30 } }
SELECT * FROM inventory WHERE status = "A" OR qty < 30
VS{ $or: [ { status: "A" }, { qty: { $lt: 30 } } ] }
SELECT * FROM inventory WHERE status = "A" AND ( qty < 30 OR item LIKE "p%")
VS{ status: "A", $or: [ { qty: { $lt: 30 } }, { item: /^p/ } ] }
출처 : https://www.mongodb.com/docs/manual/tutorial/query-documents/
반응형
'Database > MongoDB' 카테고리의 다른 글
MongoDB Query 날짜 조건으로 조회하기 (0) | 2022.05.26 |
---|---|
[MongoDB] Docker-compose로 세팅하기 (0) | 2022.04.21 |
[MongoDB 개념] CUD Operations (0) | 2022.04.19 |