Database/NoSQL

[MongoDB] 문서 설계와 사례

lumination 2025. 6. 16. 13:21
{
  "_id": ObjectId("..."),
  "title": "MongoDB 시작하기",
  "content": "MongoDB는 문서 지향 데이터베이스로...",
  "author": {
    "name": "김개발",
    "email": "kim@blog.com"
  },
  "tags": ["MongoDB", "NoSQL", "데이터베이스"],
  "comments": [
    {
      "user": "이사용자",
      "text": "정말 유익한 글이네요!",
      "date": ISODate("2023-05-20")
    }
  ],
  "metadata": {
    "views": 1250,
    "likes": 42,
    "featured": true
  },
  "published_date": ISODate("2023-05-15")
}


------------



{
  "_id": ObjectId("..."),
  "name": "스마트폰 X",
  "price": 1000000,
  "category": "전자기기",
  "description": "최신 스마트폰...",
  "specifications": {
    "display": "6.5인치 OLED",
    "processor": "A15 칩셋",
    "camera": "1200만 화소",
    "battery": "4000mAh"
  },
  "variants": [
    { "color": "블랙", "storage": "128GB", "stock": 50 },
    { "color": "화이트", "storage": "256GB", "stock": 30 }
  ],
  "reviews": [
    { "user_id": "user123", "rating": 5, "comment": "아주 좋아요!" }
  ],
  "related_products": [ ObjectId("..."), ObjectId("...") ]
}


----------------


{
  "_id": ObjectId("..."),
  "username": "social_kim",
  "name": "김소셜",
  "profile_pic": "https://example.com/profiles/kim.jpg",
  "bio": "소셜 미디어 전문가",
  "followers": [ObjectId("..."), ObjectId("...")],
  "following": [ObjectId("..."), ObjectId("...")],
  "posts": [
    {
      "_id": ObjectId("..."),
      "content": "오늘은 MongoDB에 대해 공부했어요!",
      "images": ["https://example.com/img1.jpg"],
      "likes": 42,
      "comments": [
        { "user_id": ObjectId("..."), "text": "멋져요!" }
      ]
    }
  ]
}