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