MongoDB - 컬렉션 생성: 초보자 가이드

안녕하세요, 미래의 데이터 마법사 여러분! 오늘 우리는 MongoDB의 세계로 발을 들여놓고 컬렉션을 생성하는 방법을 배울 것입니다. 프로그래밍에 새로운 사람이라고 걱정하지 마세요 - 나는 여러분의 친절한 안내자가 되어 단계별로 모든 것을 설명할 것입니다. 그러니 커피 한 잔 (또는 차, 그게 여러분의 취향이라면)을 손에 들고, 이제 시작해보겠습니다!

MongoDB - Create Collection

MongoDB는 무엇인가요?

컬렉션을 생성하기 전에 잠시 MongoDB가 무엇인지 이해해 보겠습니다. 큰 상자를 생각해 보세요. 여러 가지 것들을 저장할 수 있는 상자 - MongoDB는 데이터에 대해 그런 것입니다. 데이터를 저장하고 관리할 수 있는 유연한 문서 기반 형식의 데이터베이스입니다.

컬렉션은 무엇인가요?

MongoDB에서 컬렉션은 관련 문서를 보관하는 폴더와 같은 것입니다. 전통적인 데이터베이스에 익숙하다면, 컬렉션을 테이블과 비슷하게 생각할 수 있습니다. 그러나 MongoDB의 컬렉션은 훨씬 유연합니다 - 고정된 구조가 필요하지 않으므로, 동일한 컬렉션에 다른 유형의 문서를 저장할 수 있습니다.

createCollection() 메서드

이제 흥미로운 부분으로 넘어가겠습니다 - 컬렉션을 생성하는 것! MongoDB는 우리에게 createCollection()이라는 유용한 메서드를 제공해 줍니다. 데이터를 위한 새로운 폴더를 단순한 명령으로 만들 수 있는 마법의 지팡이와 같은 것입니다.

기본 문법

컬렉션을 생성하는 기본 문법은 다음과 같습니다:

db.createCollection(name, options)

이를 해부해 보겠습니다:

  • db는 현재 사용 중인 데이터베이스를 가리킵니다.
  • createCollection은 사용할 메서드입니다.
  • name은 새로운 컬렉션을 부르고 싶은 이름을 지정하는 문자열입니다.
  • options는 컬렉션에 대해 설정할 다양한 구성을 할 수 있는 선택 사항입니다.

간단한 컬렉션 생성

먼저 기본적인 예제를 시작해 보겠습니다. 우리는 도서 데이터베이스를 구축하고자 하며, 도서를 위한 컬렉션을 생성하고 싶습니다:

db.createCollection("books")

이 명령은 현재 데이터베이스에 "books"라는 새로운 컬렉션을 생성합니다. 간단하죠? MongoDB에게 "Hey, 내가 도서를 위한 새로운 폴더가 필요해!"라고 말하는 것과 같습니다.

옵션을 포함한 컬렉션 생성

이제 조금 더 복잡하게 만들어 보겠습니다. MongoDB는 컬렉션을 생성할 때 다양한 옵션을 설정할 수 있습니다. 다음은 예제입니다:

db.createCollection("readers", {
capped: true,
size: 5242880,
max: 5000
})

이 예제에서 우리는 "readers"라는 컬렉션을 생성하고 특정 옵션을 설정합니다:

  • capped: true는 이 컬렉션이 고정된 크기임을 의미합니다.
  • size: 5242880는 컬렉션의 최대 크기를 5 메가바이트로 설정합니다.
  • max: 5000는 컬렉션에 허용되는 문서의 최대 수를 5000개로 제한합니다.

이는 특정 수의 책을 보관할 수 있는 특별한 책장을 만드는 것과 같습니다.

일반적으로 사용되는 옵션

컬렉션을 생성할 때 일반적으로 사용되는 몇 가지 옵션을 살펴보겠습니다:

옵션 설명
capped 루프. true면 capped 컬렉션을 생성합니다.
size 숫자. capped 컬렉션의 최대 크기를 바이트 단위로 지정합니다.
max 숫자. capped 컬렉션에 허용되는 문서의 최대 수를 지정합니다.
validator 문서. 컬렉션에 대한 검증 규칙을 지정합니다.
validationLevel 문자열. MongoDB가 검증 규칙을 얼마나 엄격하게 적용할지 결정합니다.
validationAction 문자열. MongoDB가 무效한 문서에 대해 오류를 발생시키거나 경고를 내릴지 결정합니다.

실용적인 예제

예제 1: 로그를 위한 capped 컬렉션 생성

최신 로그를 추적해야 하지만 무한정 성장하지 않도록 하고 싶은 시스템을 구축하고 있다고 가정해 봅시다:

db.createCollection("systemLogs", {
capped: true,
size: 10485760,  // 10 MB
max: 10000
})

이 명령은 시스템 로그를 저장하는 컬렉션을 생성하지만, 가장 최근의 항목만 10 MB 또는 10,000개의 문서 중 하나를 유지합니다. 이는 오래된 노트를 자동으로 지우고 새로운 노트를 위한 공간을 만드는 메모장과 같습니다!

예제 2: 사용자 프로필을 위한 검증된 컬렉션 생성

이제 우리는 데이터베이스에 저장된 모든 사용자 프로필이 이름과 유효한 이메일을 가지고 있는지 확보하고 싶습니다:

db.createCollection("userProfiles", {
validator: {
$jsonSchema: {
bsonType: "object",
required: ["name", "email"],
properties: {
name: {
bsonType: "string",
description: "must be a string and is required"
},
email: {
bsonType: "string",
pattern: "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$",
description: "must be a valid email address and is required"
}
}
}
}
})

이 예제는 각 문서가 이름 (문자열로 해야 하며 필수입니다)과 유효한 이메일 주소를 가지고 있는지 확인하는 컬렉션을 생성합니다. 이는 도서관 카드를 올바르게 작성하지 않으면 책을 빌릴 수 없도록 하는 엄격한 도서관 관리자와 같습니다!

컬렉션 존재 여부 확인

새로운 컬렉션을 생성하기 전에 이미 존재하는지 확인하는 것이 좋습니다. 다음은 그 방법입니다:

if (!db.getCollectionNames().includes("myNewCollection")) {
db.createCollection("myNewCollection")
print("Collection created successfully!")
} else {
print("Collection already exists!")
}

이 스크립트는 "myNewCollection"이 존재하는지 확인합니다. 존재하지 않으면 컬렉션을 생성하고 성공 메시지를 출력합니다. 이미 존재하면 존재함을 알립니다. 이는 특정 주제에 대한 폴더가 이미 있는지 확인한 후 새로운 폴더를 생성하는 것과 같습니다!

결론

축하합니다! MongoDB에서 컬렉션을 생성하는 기본을 배웠습니다. 기억하세요, 컬렉션은 데이터의 유연한 컨테이너이며, createCollection() 메서드는 그것을 원하는 대로 설정하는 도구입니다.

MongoDB 여정을 계속하면서, 컬렉션을 사용자 정의하고 최적화하는 더 많은 방법을 발견할 것입니다. 하지만 지금은 충분히 자랑할 만합니다 - MongoDB 마스터가 되는 길에 한 걸음 더 나아갔습니다!

계속 연습하고, 호기심을 유지하며, 행복하게 코딩하세요! 데이터의 집을 설계하는 데이터 아키텍트이신 여러분, 그 데이터를 편안하고 효율적이고 필요한 대로 만들어 주세요!

Credits: Image by storyset