Docs Menu

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฐธ์กฐ

MongoDB์˜ ๋งŽ์€ ์‚ฌ์šฉ ์‚ฌ๋ก€์—์„œ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹จ์ผ ๋ฌธ์„œ ๋‚ด์— ์ €์žฅ๋˜๋Š” ๋น„์ •๊ทœํ™”๋œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ด ์ตœ์ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ์„œ๋Š” ๊ด€๋ จ ์ •๋ณด๋ฅผ ๋ณ„๋„์˜ ๋ฌธ์„œ, ์ผ๋ฐ˜์ ์œผ๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ์ปฌ๋ ‰์…˜์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ค‘์š”

$lookup ํŒŒ์ดํ”„๋ผ์ธ ๋‹จ๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒค๋”ฉ๋˜์ง€ ์•Š์€ collection์— ์™ผ์ชฝ ์™ธ๋ถ€ ์กฐ์ธ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$graphLookup ํŒŒ์ดํ”„๋ผ์ธ ๋‹จ๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒค๋”ฉ๋˜์ง€ ์•Š์€ collection์„ ์กฐ์ธํ•ด ์žฌ๊ท€ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€์—์„œ๋Š” $lookup ๋ฐ $graphLookup ํŒŒ์ดํ”„๋ผ์ธ ๋‹จ๊ณ„ ์ด์ „์˜ ๋Œ€์ฒด ์ ˆ์ฐจ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ํ™˜๊ฒฝ์—์„œ ํ˜ธ์ŠคํŒ…๋˜๋Š” ๋ฐฐํฌ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฐธ์กฐ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • MongoDB Atlas: ํด๋ผ์šฐ๋“œ์—์„œ์˜ MongoDB ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์™„์ „ ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค

  • MongoDB Enterprise: MongoDB์˜ ๊ตฌ๋… ๊ธฐ๋ฐ˜ ์ž์ฒด ๊ด€๋ฆฌ ๋ฒ„์ „

  • MongoDB Community: MongoDB์˜ ์†Œ์Šค ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋ฌด๋ฃŒ ์ž์ฒด ๊ด€๋ฆฌ ๋ฒ„์ „

MongoDB ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์„œ๋ฅผ ์—ฐ๊ด€์‹œํ‚ต๋‹ˆ๋‹ค.

  • ์ˆ˜๋™ ์ฐธ์กฐ๋Š” ํ•œ ๋ฌธ์„œ์˜ _id ํ•„๋“œ๋ฅผ ๋‹ค๋ฅธ ๋ฌธ์„œ์— ์ฐธ์กฐ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋‘ ๋ฒˆ์งธ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ฐธ์กฐ๋Š” ๊ฐ„๋‹จํ•˜๊ณ  ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

  • DBRefs๋Š” ์ฒซ ๋ฒˆ์งธ ๋ฌธ์„œ์˜ _id ํ•„๋“œ์˜ ๊ฐ’, ์ปฌ๋ ‰์…˜ ์ด๋ฆ„, ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„(์„ ํƒ ์‚ฌํ•ญ) ๋ฐ ๊ธฐํƒ€ ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•œ ๋ฌธ์„œ์—์„œ ๋‹ค๋ฅธ ๋ฌธ์„œ๋กœ ์ฐธ์กฐํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. DBRefs๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ์ปฌ๋ ‰์…˜ ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฌธ์„œ๋ฅผ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

DBreFS๋ฅผ ํ•ด์„ํ•˜๋ ค๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ถ”๊ฐ€ ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ฐธ์กฐ๋œ ๋ฌธ์„œ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ MongoDB ๋“œ๋ผ์ด๋ฒ„๋Š” DBRefs๋ฅผ ๋ฌธ์„œ๋กœ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ฌํผ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

DBRef๋Š” ๋ฌธ์„œ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ณตํ†ต ํ˜•์‹๊ณผ ์œ ํ˜•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์—ฌ๋Ÿฌ ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ ๋„๊ตฌ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ DBRef ํ˜•์‹์€ ๋ฌธ์„œ ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ํ‘œ์‹œํ•˜๋Š” ๊ณตํ†ต์˜ ์‹œ๋งจํ‹ฑ๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

DBRef๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ํŠน๋ณ„ํ•œ ์ด์œ ๊ฐ€ ์—†๋‹ค๋ฉด ๋Œ€์‹  ์ˆ˜๋™ ์ฐธ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

์ˆ˜๋™ ์ฐธ์กฐ๋Š” ํ•œ ๋ฌธ์„œ์˜ _id ํ•„๋“œ๋ฅผ ๋‹ค๋ฅธ ๋ฌธ์„œ์— ํฌํ•จํ•˜๋Š” ๊ด€ํ–‰์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํ•„์š”์— ๋”ฐ๋ผ ์ฐธ์กฐ๋œ ํ•„๋“œ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋‘ ๋ฒˆ์งธ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

MongoDB Atlas UI์—์„œ ์ˆ˜๋™ ์ฐธ์กฐ๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

1

๊ฒฝ๊ณ 

ํƒ์ƒ‰ ๊ฐœ์„  ์ง„ํ–‰ ์ค‘

ํ˜„์žฌ ์ƒˆ๋กญ๊ณ  ํ–ฅ์ƒ๋œ ํƒ์ƒ‰ ํ™˜๊ฒฝ์„ ์ถœ์‹œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹จ๊ณ„๊ฐ€ Atlas UI ์—์„œ ๋ณธ ๋ณด๊ธฐ์™€ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ Atlas ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  1. ์•„์ง ํ‘œ์‹œ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํƒ์ƒ‰ ํ‘œ์‹œ์ค„์˜ Organizations ๋ฉ”๋‰ด์—์„œ ์›ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ํฌํ•จ๋œ ์กฐ์ง์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  2. ์•„์ง ํ‘œ์‹œ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋‚ด๋น„๊ฒŒ์ด์…˜ ๋ฐ”์˜ Projects ๋ฉ”๋‰ด์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  3. ์•„์ง ํ‘œ์‹œ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์‚ฌ์ด๋“œ๋ฐ”์—์„œ Clusters๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    Clusters(ํด๋Ÿฌ์Šคํ„ฐ) ํŽ˜์ด์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

2
  1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฐธ์กฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋Š” ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฒฝ์šฐ Browse Collections๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  2. ์™ผ์ชฝ ํƒ์ƒ‰ ์ฐฝ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  3. ์™ผ์ชฝ ํƒ์ƒ‰ ์ฐฝ์—์„œ ์ปฌ๋ ‰์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์—์„œ๋Š” places ์ปฌ๋ ‰์…˜์„ ์ฐธ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

3
  1. Insert Document๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  2. JSON ๋ทฐ ์•„์ด์ฝ˜({{}})์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ๋‹ค์Œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌธ์„œ์— ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค.

    {
    "_id": {
    "$oid": "651aea5870299b120736f442"
    },
    "name": "Broadway Center",
    "url": "bc.example.net"
    }
  4. Insert๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

4
  1. ์™ผ์ชฝ ํƒ์ƒ‰ ์ฐฝ์—์„œ ๋‹ค๋ฅธ ์ปฌ๋ ‰์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์—์„œ๋Š” people ์ปฌ๋ ‰์…˜์„ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.

  2. Insert Document๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. JSON ๋ทฐ ์•„์ด์ฝ˜({{}})์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ๋‹ค์Œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌธ์„œ์— ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค.

    {
    "_id": {
    "$oid": "651aebeb70299b120736f443"
    },
    "name": "Erin",
    "places_id": "651aea5870299b120736f442"
    "url": "bc.example.net/Erin"
    }
  5. Insert๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ์ฟผ๋ฆฌ๊ฐ€ people ์ปฌ๋ ‰์…˜์—์„œ ๋ฌธ์„œ๋ฅผ ๋ฐ˜ํ™˜ํ•  ๋•Œ ํ•„์š”ํ•œ ๊ฒฝ์šฐ places_id ํ•„๋“œ๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๋ฌธ์„œ์— ๋Œ€ํ•œ places ์ปฌ๋ ‰์…˜์˜ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    MongoDB Atlas์—์„œ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด MongoDB Atlas ๋ฌธ์„œ์—์„œ ๋ฌธ์„œ ๋ณด๊ธฐ, ํ•„ํ„ฐ๋ง ๋ฐ ์ •๋ ฌ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ฒซ ๋ฒˆ์งธ ๋ฌธ์„œ์˜ _id ํ•„๋“œ๋ฅผ ๋‘ ๋ฒˆ์งธ ๋ฌธ์„œ์˜ ์ฐธ์กฐ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ๋ฌธ์„œ๋ฅผ ์‚ฝ์ž…ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ž‘์—…์„ ๊ณ ๋ คํ•˜์„ธ์š”.

original_id = ObjectId()
db.places.insertOne({
"_id": original_id,
"name": "Broadway Center",
"url": "bc.example.net"
})
db.people.insertOne({
"name": "Erin",
"places_id": original_id,
"url": "bc.example.net/Erin"
})

๊ทธ๋Ÿฐ ๋‹ค์Œ ์ฟผ๋ฆฌ๊ฐ€ people collection์—์„œ ๋ฌธ์„œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด ํ•„์š”ํ•œ ๊ฒฝ์šฐ places collection์˜ places_id ํ•„๋“œ์—์„œ ์ฐธ์กฐํ•˜๋Š” ๋ฌธ์„œ์— ๋Œ€ํ•ด ๋‘ ๋ฒˆ์งธ ์ฟผ๋ฆฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‘ ๋ฌธ์„œ ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ์ €์žฅํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ๋Œ€๋ถ€๋ถ„ ์ˆ˜๋™ ์ฐธ์กฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฐธ์กฐ๋Š” ์ƒ์„ฑํ•˜๊ธฐ ๊ฐ„๋‹จํ•˜๋ฉฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํ•„์š”์— ๋”ฐ๋ผ ์ฐธ์กฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜๋™ ์—ฐ๊ฒฐ์˜ ์œ ์ผํ•œ ์ œํ•œ ์‚ฌํ•ญ์€ ์ด๋Ÿฌํ•œ ์ฐธ์กฐ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ์ปฌ๋ ‰์…˜ ์ด๋ฆ„์„ ์ „๋‹ฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‘˜ ์ด์ƒ์˜ ์ปฌ๋ ‰์…˜์— ์žˆ๋Š” ๋ฌธ์„œ์™€ ๊ด€๋ จ๋œ ๋‹จ์ผ ์ปฌ๋ ‰์…˜ ๋ฌธ์„œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ DBRefs ์‚ฌ์šฉ์„ ๊ณ ๋ คํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

DBRef๋Š” ํŠน์ • ์ฐธ์กฐ ์œ ํ˜•์ด ์•„๋‹Œ ๋ฌธ์„œ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ ๊ทœ์น™์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” _id ํ•„๋“œ์˜ ๊ฐ’ ์™ธ์—๋„ ์ปฌ๋ ‰์…˜ ์ด๋ฆ„, ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์„ ํƒ์ ์œผ๋กœ DBRef์—๋Š” ๋‹ค๋ฅธ ํ•„๋“œ๋ฅผ ์–ผ๋งˆ๋“ ์ง€ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ํ•„๋“œ ์ด๋ฆ„์€ ์„œ๋ฒ„ ๋ฒ„์ „์—์„œ ์ง€์ •ํ•œ ํ•„๋“œ ์ด๋ฆ„ ๊ทœ์น™์„ ๋”ฐ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

DBRef์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•„๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค:

$ref

$ref ํ•„๋“œ์—๋Š” ์ฐธ์กฐ๋œ ๋ฌธ์„œ๊ฐ€ ์žˆ๋Š” ์ปฌ๋ ‰์…˜์˜ ์ด๋ฆ„์ด ์žˆ์Šต๋‹ˆ๋‹ค.

$id

$id ํ•„๋“œ์—๋Š” ์ฐธ์กฐ๋œ ๋ฌธ์„œ์˜ _id ํ•„๋“œ ๊ฐ’์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

$db

์„ ํƒ ์‚ฌํ•ญ.

์ฐธ์กฐ๋œ ๋ฌธ์„œ๊ฐ€ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ด๋ฆ„์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ

DBRef ๋ฌธ์„œ๋Š” ๋‹ค์Œ ๋ฌธ์„œ์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

{ "$ref" : <value>, "$id" : <value>, "$db" : <value> }

creator ํ•„๋“œ์— DBRef๋ฅผ ์ €์žฅํ•œ collection์˜ ๋ฌธ์„œ๋ฅผ ์˜ˆ๋กœ ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

{
"_id" : ObjectId("5126bbf64aed4daf9e2ab771"),
// .. application fields
"creator" : {
"$ref" : "creators",
"$id" : ObjectId("5126bc054aed4daf9e2ab772"),
"$db" : "users",
"extraField" : "anything"
}
}

์ด ์˜ˆ์‹œ์˜ DBRef๋Š” _id ํ•„๋“œ์— ObjectId("5126bc054aed4daf9e2ab772")๊ฐ€ ์žˆ๋Š” users ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ creators ์ปฌ๋ ‰์…˜์— ์žˆ๋Š” ๋ฌธ์„œ๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ์„ ํƒ ์‚ฌํ•ญ ํ•„๋“œ๋„ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

DBRef์˜ ํ•„๋“œ ์ˆœ์„œ๋Š” ์ค‘์š”ํ•˜๋ฉฐ DBRef๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์œ„์˜ ์‹œํ€€์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋“œ๋ผ์ด๋ฒ„
DBRef ์ง€์›
์ฐธ๊ณ  ์‚ฌํ•ญ

C

์ง€์›๋˜์ง€ ์•Š์Œ

์ฐธ์กฐ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ˆœํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

C++

์ง€์›๋˜์ง€ ์•Š์Œ

์ฐธ์กฐ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ˆœํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

C#

์ง€์›๋จ

์ž์„ธํ•œ ๋‚ด์šฉ์€ C# ๋“œ๋ผ์ด๋ฒ„ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Go

์ง€์›๋˜์ง€ ์•Š์Œ

์ฐธ์กฐ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ˆœํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์Šค์ผˆ

์ง€์›๋˜์ง€ ์•Š์Œ

์ฐธ์กฐ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ˆœํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Java

์ง€์›๋จ

์ž์„ธํ•œ ๋‚ด์šฉ์€ Java ๋“œ๋ผ์ด๋ฒ„ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Node.js

์ง€์›๋จ

์ž์„ธํ•œ ๋‚ด์šฉ์€ Node.js ๋“œ๋ผ์ด๋ฒ„ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Perl

์ง€์›๋จ

์ž์„ธํ•œ ๋‚ด์šฉ์€ ํŽ„(Perl) ๋“œ๋ผ์ด๋ฒ„ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

PHP

์ง€์›๋˜์ง€ ์•Š์Œ

์ฐธ์กฐ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ˆœํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Python

์ง€์›๋จ

์ž์„ธํ•œ ๋‚ด์šฉ์€ PyMongo ๋“œ๋ผ์ด๋ฒ„ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Ruby

์ง€์›๋จ

์ž์„ธํ•œ ๋‚ด์šฉ์€ Ruby ๋“œ๋ผ์ด๋ฒ„ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Scala

์ง€์›๋˜์ง€ ์•Š์Œ

์ฐธ์กฐ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ˆœํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋‘ ๊ฐœ ์ด์ƒ์˜ ๊ด€๋ จ ๋ฌธ์„œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ์ˆ˜๋™ ์ฐธ์กฐ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ๋Ÿฌ ์ปฌ๋ ‰์…˜์˜ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ DBRef๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.