MongoDB - ๋ฐฐ์—ด ์ฟผ๋ฆฌ - (1)

2021. 12. 19. 14:13ยทDatabase/MongoDB
728x90
๐Ÿ’ก MongoDB ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ์ž‘์„ฑํ•˜์˜€๋‹ค.

์ฐธ๊ณ  : https://docs.mongodb.com/manual/tutorial/query-arrays/

๋ฐฐ์—ด ์ฟผ๋ฆฌ

inventory collection ๊ธฐ๋ฐ˜์œผ๋กœ ์˜ˆ์ œ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

db.inventory.insertMany( [
  { item: "journal", status: "A", size: { h: 14, w: 21, uom: "cm" }, instock: [ { warehouse: "A", qty: 5 } ] },
  { item: "notebook", status: "A",  size: { h: 8.5, w: 11, uom: "in" }, instock: [ { warehouse: "C", qty: 5 } ] },
  { item: "paper", status: "D", size: { h: 8.5, w: 11, uom: "in" }, instock: [ { warehouse: "A", qty: 60 } ] },
  { item: "planner", status: "D", size: { h: 22.85, w: 30, uom: "cm" }, instock: [ { warehouse: "A", qty: 40 } ] },
  { item: "postcard", status: "A", size: { h: 10, w: 15.25, uom: "cm" }, instock: [ { warehouse: "B", qty: 15 }, { warehouse: "C", qty: 35 } ] }
]);
  • ๋ฐฐ์—ด ์ผ์น˜
    • ๋ฐฐ์—ด์— ํ‰๋“ฑ ์กฐ๊ฑด์„ ์ง€์ •ํ•˜๋ ค๋ฉด ์ฟผ๋ฆฌ ๋ฌธ์„œ ์‚ฌ์šฉ ์š”์†Œ์˜ ์ˆœ์„œ๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ฐฐ์—ด์— ๋งค์น˜๋˜๋Š” ์ •ํ™•ํ•œ document์˜ ๊ฐ’์„ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค. ex) “red”, “blank”๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๋ชจ๋“  ๋ฐฐ์—ด์„ ์ฐพ๊ณ  ์‹ถ๋‹ค๋ฉด $all ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    • db.inventory.find( { tags: ["red", "blank"] } )
    • db.inventory.find( { tags: { $all: ["red", "blank"] } } )
    • ex) ํ•„๋“œ tags ์˜ value์ธ [”red”, “blank”] ๋ฐฐ์—ด์„ ๊ฒ€์ƒ‰
  • ์š”์†Œ์— ๋Œ€ํ•œ ๋ฐฐ์—ด ์ฟผ๋ฆฌ
    • ๋ฐฐ์—ด ํ•„๋“œ๊ฐ€ ์ ์–ด๋„ 1๊ฐœ์˜ ์ง€์ •๋œ ๊ฐ’์œผ๋กœ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ฟผ๋ฆฌํ•˜๋ ค๋ฉด { : } ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.
      db.inventory.find( { tags: "red" } )
      ๋ฐฐ์—ด ํ•„๋“œ์˜ ์š”์†Œ์— ๋Œ€ํ•œ ์กฐ๊ฑด์„ ์ง€์ •ํ•˜๋ ค๋ฉดex) ๋ฐฐ์—ด dim_cm์— 25๋ณด๋‹ค ํฐ ์š”์†Œ๊ฐ€ ํ•˜๋‚˜ ์ด์ƒ ํฌํ•จ๋œ ๋ชจ๋“  document๋ฅผ ์„ ํƒํ•œ๋‹ค. → $gt ์‚ฌ์šฉ
    • db.inventory.find( { dim_cm: { $gt: 25 } } )
    • { <array field>: { <operator1>: <value1>, ... } }
    • ex) ํƒœ๊ทธ๊ฐ€ "red" ๋ฌธ์ž์—ด์„ ์š”์†Œ ์ค‘ ํ•˜๋‚˜๋กœ ํฌํ•จํ•˜๋Š” ๋ฐฐ์—ด์ธ ๋ชจ๋“  document๋ฅผ ์„ ํƒํ•œ๋‹ค.
  • ๋ฐฐ์—ด ์š”์†Œ์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ์กฐ๊ฑด ์ง€์ •
    • ๋ฐฐ์—ด ์š”์†Œ์— ๋ณตํ•ฉ ์กฐ๊ฑด์„ ์ง€์ •ํ•  ๋•Œ๋ฐฐ์—ด ์š”์†Œ์˜ ์กฐํ•ฉ์ด ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋„๋ก
    • ์ฟผ๋ฆฌ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋‹จ์ผ ๋ฐฐ์—ด ์š”์†Œ๊ฐ€ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๊ฑฐ๋‚˜
    • ๋ฐฐ์—ด ์š”์†Œ์— ๋Œ€ํ•œ ๋ณตํ•ฉ ํ•„ํ„ฐ ์กฐ๊ฑด์œผ๋กœ ๋ฐฐ์—ด ์ฟผ๋ฆฌex) dim_cm ๋ฐฐ์—ด์— ํ•œ ์š”์†Œ๋Š” 15๋ณด๋‹ค ํฌ๊ณ  20 ๋ณด๋‹ค๋Š” ์ž‘์€ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋ฉด
    • db.inventory.find( { dim_cm: { $gt: 15, $lt: 20 } } )
    • ๋‹ค์Œ ์˜ˆ์ œ์—์„œ๋Š” dim_cm ๋ฐฐ์—ด์ด ์ฟผ๋ฆฌ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋Š” ์š”์†Œ๊ฐ€ ํฌํ•จ๋œ document๋ฅผ ์ฟผ๋ฆฌํ•œ๋‹ค.

  • ์—ฌ๋Ÿฌ ๊ธฐ์ค€์„ ์ถฉ์กฑํ•˜๋Š” ๋ฐฐ์—ด ์š”์†Œ์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ
    $eleMatch๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฐฐ์—ด ์š”์†Œ๊ฐ€ ์ง€์ •๋œ ๋ชจ๋“  ๊ธฐ์ค€์„ ์ถฉ์กฑํ•˜๋„๋ก ๋ฐฐ์—ด ์š”์†Œ์— ์—ฌ๋Ÿฌ ๊ธฐ์ค€์„ ์ง€์ •ํ•œ๋‹ค.
    db.inventory.find( { dim_cm: { **$elemMatch**: { $gt: 22, $lt: 30 } } } )
  • ex) dim_cm ๋ฐฐ์—ด์— ($gt) 22๋ณด๋‹ค ํฌ๊ณ  ($lt) 30๋ณด๋‹ค ์ž‘์€ ์š”์†Œ๊ฐ€ ํ•˜๋‚˜ ์ด์ƒ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.
  • ๋ฐฐ์—ด ์ธ๋ฑ์Šค ์œ„์น˜๋กœ ์š”์†Œ ์ฟผ๋ฆฌ
    • ์  ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์˜ ํŠน์ • ์ธ๋ฑ์Šค ๋˜๋Š” ์œ„์น˜์— ์žˆ๋Š” ์š”์†Œ์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ ์กฐ๊ฑด์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฐฐ์—ด์€ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ์ธ๋ฑ์‹ฑ์„ ์‚ฌ์šฉํ•œ๋‹ค.
    db.inventory.find( { "dim_cm.1": { $gt: 25 } } )
  • ex) dim_cm ๋ฐฐ์—ด์˜ ๋‘ ๋ฒˆ์งธ ์š”์†Œ๊ฐ€ 25๋ณด๋‹ค ํฐ document๋ฅผ ์ฟผ๋ฆฌํ•œ๋‹ค.
  • ๋ฐฐ์—ด ๊ธธ์ด๋กœ ๋ฐฐ์—ด ์ฟผ๋ฆฌ
    • $size ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์š”์†Œ ์ˆ˜๋กœ ๋ฐฐ์—ด์„ ์ฟผ๋ฆฌํ•œ๋‹ค.
      db.inventory.find( { "tags": { $size: 3 } } )
    • ex) tags ๋ฐฐ์—ด์— 3๊ฐœ์˜ ์š”์†Œ๊ฐ€ ์žˆ๋Š” document๋ฅผ ์„ ํƒํ•œ๋‹ค.
728x90
๋ฐ˜์‘ํ˜•

'Database > MongoDB' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

MongoDB - Query์—์„œ ๋ฐ˜ํ™˜ํ•  projectjon field  (0) 2021.12.19
MongoDB - ๋ฐฐ์—ด ์ฟผ๋ฆฌ - (2)  (0) 2021.12.19
MongoDB - Document Query(์กฐํšŒ) - (2)  (2) 2021.12.18
MongoDB - Document Query(์กฐํšŒ) - (1)  (0) 2021.12.18
MongoDB - Database/Collection/Document์ƒ์„ฑ,์ œ๊ฑฐ  (0) 2021.12.18
'Database/MongoDB' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • MongoDB - Query์—์„œ ๋ฐ˜ํ™˜ํ•  projectjon field
  • MongoDB - ๋ฐฐ์—ด ์ฟผ๋ฆฌ - (2)
  • MongoDB - Document Query(์กฐํšŒ) - (2)
  • MongoDB - Document Query(์กฐํšŒ) - (1)
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)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋ฌด๋ฃŒ์ฝ”๋”ฉ๊ต์œก
    ๋น…์˜คํ‘œ๊ธฐ๋ฒ•
    git branch
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    ๊ฐœ๋…
    gitlab
    MongoDB
    Git
    SW
    spring boot
    ์˜ค๋ธ”์™„
    mysql
    ์ฝ”๋”ฉ๊ฐ•์˜
    ๋Œ€์™ธํ™œ๋™
    Java
    ๋ฌด๋ฃŒIT๊ต์œก
    ๊ฐ์ฒด์ง€ํ–ฅ
    Query
    dp
    ์ฝ”๋“œํ”„๋ ˆ์†Œ
    ๋ฐฑ์ค€
    SWEA
    codepresso
    IT๊ต์œก
    ์ฝ”๋”ฉ์ด๋Ÿฌ๋‹
    BFS
    ์–ธ์–ด
    python
    Database
    ์ž๋ฐ”
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.4
pink_salt
MongoDB - ๋ฐฐ์—ด ์ฟผ๋ฆฌ - (1)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”