MongoDB 컬렉션 생성

MongoDBBeginner
지금 연습하기

소개

이 랩에서는 MongoDB 작업을 위한 기본 단계를 배우게 됩니다. MongoDB Shell (mongosh) 을 사용하여 데이터베이스를 생성하고, 컬렉션을 추가하고, 문서를 삽입하고, 기본적인 데이터 관리 작업을 수행합니다. 이 실습 접근 방식은 핵심 MongoDB 명령에 대한 실질적인 경험을 제공하여 더 고급 데이터베이스 작업을 위한 견고한 기반을 마련할 것입니다.

MongoDB 셸 시작 및 데이터베이스 생성

첫 번째 단계는 대화형 셸인 mongosh를 사용하여 MongoDB 서버에 연결하는 것입니다. 이 도구를 사용하면 데이터베이스 인스턴스에 직접 명령을 실행할 수 있습니다.

터미널에서 mongosh 명령을 실행하여 MongoDB Shell 을 시작합니다.

mongosh

연결 메시지가 표시되며, 이제 mongosh 환경에 있음을 나타냅니다.

Current Mongosh Log ID: 65a7f3e8f5a8a9b3c4d5e6f7
Connecting to:           mongodb://127.0.0.1:27017/
Using MongoDB:           8.0.2
Using Mongosh:           2.2.6
...
test>

test> 프롬프트는 현재 기본 test 데이터베이스에 연결되어 있음을 나타냅니다. 프로젝트를 위해 새 데이터베이스로 전환해 보겠습니다. MongoDB 에서는 아직 존재하지 않는 데이터베이스로 전환할 수 있습니다. 데이터를 처음 저장할 때 자동으로 생성됩니다.

use 명령을 사용하여 my_store라는 새 데이터베이스로 전환합니다.

use my_store

셸에서 전환을 확인합니다.

switched to db my_store

현재 사용 중인 데이터베이스를 확인하려면 db를 입력할 수 있습니다.

db;

출력에서 현재 데이터베이스의 이름이 표시됩니다.

my_store

컬렉션 생성 및 문서 삽입

이제 my_store 데이터베이스에 있으므로 다음 단계는 컬렉션을 만드는 것입니다. 컬렉션은 MongoDB 문서의 그룹으로, 관계형 데이터베이스의 테이블과 유사합니다.

products라는 컬렉션을 만들어 보겠습니다. createCollection() 메서드를 사용하여 명시적으로 수행할 수 있습니다.

db.createCollection("products");

성공적인 작업은 성공을 나타내는 객체를 반환합니다.

{ ok: 1 }

products가 생성되었는지 확인하기 위해 현재 데이터베이스의 모든 컬렉션을 나열할 수 있습니다.

show collections
products

컬렉션을 생성했으므로 이제 첫 번째 문서를 삽입할 수 있습니다. 문서는 BSON 객체로, JSON 과 유사한 문서의 이진 인코딩 직렬화입니다.

insertOne() 메서드를 사용하여 products 컬렉션에 단일 문서를 추가합니다.

db.products.insertOne({
  name: "Laptop",
  price: 1200,
  category: "Electronics"
});

MongoDB 는 삽입을 확인하고 새 문서의 고유한 _id를 제공합니다.

{
  acknowledged: true,
  insertedId: ObjectId("...")
}

ObjectId는 각 문서에 대해 자동으로 생성되며 기본 키 역할을 합니다.

여러 문서 삽입

종종 한 번에 여러 문서를 컬렉션에 추가해야 할 수 있습니다. MongoDB 는 이 목적을 위해 insertMany() 메서드를 제공합니다. 이 메서드는 insertOne()을 여러 번 호출하는 것보다 더 효율적입니다.

products 컬렉션에 두 개의 제품을 더 추가해 보겠습니다. insertMany() 메서드는 인수로 문서 객체의 배열을 받습니다.

db.products.insertMany([
  {
    name: "Keyboard",
    price: 75,
    category: "Electronics"
  },
  {
    name: "Desk Chair",
    price: 150,
    category: "Furniture"
  }
]);

출력은 작업이 승인되었음을 확인하고 새로 삽입된 각 문서의 _id 값을 나열합니다.

{
  acknowledged: true,
  insertedIds: {
    '0': ObjectId("..."),
    '1': ObjectId("...")
  }
}

이제 products 컬렉션에 있는 총 문서 수를 확인해 보겠습니다. 이를 위해 countDocuments() 메서드를 사용할 수 있습니다.

db.products.countDocuments();

셸은 이전 단계의 문서 하나와 방금 추가한 두 개를 반영하여 3을 반환해야 합니다.

3

문서 조회 및 보기

데이터를 삽입한 후에는 데이터를 검색하고 보기를 원할 것입니다. 컬렉션을 쿼리하는 기본 메서드는 find()입니다.

products 컬렉션의 모든 문서를 보려면 인수를 사용하지 않고 find() 메서드를 실행합니다.

db.products.find();

mongosh 셸은 가독성을 위해 출력을 자동으로 포맷하여 컬렉션의 세 문서 모두를 표시합니다.

[
  {
    _id: ObjectId("..."),
    name: 'Laptop',
    price: 1200,
    category: 'Electronics'
  },
  {
    _id: ObjectId("..."),
    name: 'Keyboard',
    price: 75,
    category: 'Electronics'
  },
  {
    _id: ObjectId("..."),
    name: 'Desk Chair',
    price: 150,
    category: 'Furniture'
  }
]

find() 메서드는 결과를 필터링하기 위한 쿼리 문서도 받을 수 있습니다. 이를 통해 특정 기준과 일치하는 문서를 찾을 수 있습니다. 예를 들어 "Electronics" 카테고리의 모든 제품을 찾아보겠습니다.

db.products.find({ category: "Electronics" });

이 명령은 category 필드의 값이 "Electronics"인 문서만 반환합니다.

[
  {
    _id: ObjectId("..."),
    name: 'Laptop',
    price: 1200,
    category: 'Electronics'
  },
  {
    _id: ObjectId("..."),
    name: 'Keyboard',
    price: 75,
    category: 'Electronics'
  }
]

이 간단한 필터링 기능은 컬렉션에서 특정 데이터를 검색하는 강력한 기능입니다.

컬렉션 삭제

마지막 단계에서는 데이터베이스에서 컬렉션을 제거하는 방법을 배웁니다. 이 작업은 되돌릴 수 없으며 컬렉션과 해당 문서 및 인덱스를 모두 삭제합니다. 임시 데이터를 정리하거나 더 이상 사용되지 않는 컬렉션을 제거할 때 유용합니다.

이를 시연하기 위해 먼저 임시 컬렉션을 만들어 보겠습니다.

db.createCollection("temp_data");
{ ok: 1 }

이제 temp_data 컬렉션에서 drop() 메서드를 사용하여 삭제합니다.

db.temp_data.drop();

컬렉션이 성공적으로 삭제되면 명령은 true를 반환합니다.

true

컬렉션이 제거되었는지 확인하려면 데이터베이스의 모든 컬렉션을 다시 나열할 수 있습니다.

show collections

이제 출력에는 products 컬렉션만 표시되어 temp_data가 삭제되었음을 확인합니다.

products

이것으로 MongoDB 에서 컬렉션을 관리하는 기본 작업이 완료되었습니다. 완료되면 mongosh 셸을 종료하는 것을 잊지 마십시오.

exit;

요약

이 실습에서는 MongoDB 작업을 위한 기본 기술을 배웠습니다. mongosh 셸을 사용하여 MongoDB 인스턴스에 연결하는 것부터 시작했습니다. 그런 다음 데이터베이스와 컬렉션을 만들고, 단일 및 다중 문서를 삽입하고, find() 메서드를 사용하여 해당 데이터를 쿼리하는 연습을 했습니다. 마지막으로 drop() 명령을 사용하여 컬렉션을 안전하게 제거하는 방법을 배웠습니다. 이러한 핵심 작업 (생성, 읽기, 삭제) 은 MongoDB 를 데이터 저장소로 사용하는 모든 애플리케이션의 빌딩 블록입니다. 이제 MongoDB 환경에서 데이터를 관리하는 데 필요한 기본 지식을 갖추었습니다.