MongoDB의 기본 CRUD 작업 방법

MongoDB의 기본 CRUD 작업 이해하기

MongoDB는 JSON 형식 데이터를 손쉽게 처리할 수 있는 NoSQL 데이터베이스로, 데이터베이스 설계에서 유연성을 제공하는 특징이 있습니다. 특히 CRUD 작업(Create, Read, Update, Delete)은 데이터 관리의 핵심 기능으로, MongoDB에서도 이 작업은 매우 중요한 역할을 합니다. 이번 포스팅에서는 MongoDB의 기본 CRUD 작업을 단계별로 알아보겠습니다.

MongoDB 시작하기

MongoDB를 활용하기 위해서는 먼저 데이터베이스와 컬렉션을 생성해야 합니다. 데이터베이스(DB)는 여러 개의 컬렉션(Collection)을 포함할 수 있으며, 각 컬렉션은 여러 개의 문서(Document)로 구성됩니다. 이를 통해 다양한 데이터를 구조적으로 관리할 수 있습니다.

MongoDB에 연결하기

MongoDB를 사용하기 위해서는 먼저 MongoDB 서버에 연결해야 합니다. Java의 경우, 다음과 같은 코드를 통해 연결을 설정할 수 있습니다.

import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoCollection;
import org.bson.Document;
// 서버 연결
MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
MongoDatabase database = mongoClient.getDatabase("exampleDb");
MongoCollection collection = database.getCollection("sampleCollection");

CRUD 작업 살펴보기

이제 MongoDB에서의 CRUD 작업을 하나씩 살펴보도록 하겠습니다.

데이터 삽입 (Create)

MongoDB에서 데이터를 추가하는 방법은 단일 문서와 여러 문서를 동시에 삽입할 수 있습니다. 예를 들어, 다음과 같이 단일 문서를 컬렉션에 추가할 수 있습니다.

// 단일 문서 삽입
MyDto document = new MyDto("Alice", 25, "Seoul");
mongoTemplate.insert(document, "sampleCollection");

여러 문서를 삽입할 때는 다음과 같이 진행합니다.

// 다중 문서 삽입
List documents = Arrays.asList(
  new MyDto("Bob", 30, "Busan"),
  new MyDto("Charlie", 35, "Incheon")
);
mongoTemplate.insert(documents, "sampleCollection");

데이터 조회 (Read)

특정 조건에 따른 데이터를 조회할 때는 Query와 Criteria를 사용해야 합니다. 예를 들어, 나이가 25세 이상인 사용자 정보를 조회하는 방법은 다음과 같습니다.

// 나이가 25세 이상인 데이터 조회
Query query = new Query(Criteria.where("age").gte(25));
List results = mongoTemplate.find(query, MyDto.class, "sampleCollection");

데이터 수정 (Update)

MongoDB에서 데이터 수정 작업은 updateFirst()와 updateMulti() 메서드를 통해 수행할 수 있습니다. 특정 사용자의 나이를 변경할 때는 다음과 같이 합니다.

Query query = new Query(Criteria.where("name").is("Alice"));
Update update = new Update().set("age", 26);
mongoTemplate.updateFirst(query, update, "sampleCollection");

데이터 삭제 (Delete)

데이터 삭제는 remove() 메서드를 사용하여 특정 조건에 맞는 문서를 제거할 수 있습니다. 예를 들어, 이름이 “Charlie”인 문서를 삭제할 수 있습니다.

Query query = new Query(Criteria.where("name").is("Charlie"));
mongoTemplate.remove(query, MyDto.class, "sampleCollection");

조건 조합 및 정렬

MongoDB는 다양한 조건을 조합하여 데이터를 검색할 수 있습니다. 예를 들어, 나이가 25세 이상이며 서울에 거주하는 사용자 정보를 조회하고 싶다면, andOperator를 활용할 수 있습니다.

Query query = new Query(
  new Criteria().andOperator(
    Criteria.where("age").gte(25),
    Criteria.where("city").is("Seoul")
  )
);
List results = mongoTemplate.find(query, MyDto.class, "sampleCollection");

또한, 조회 결과를 정렬하고 개수를 제한하는 방법도 제공됩니다. 다음은 나이를 기준으로 내림차순 정렬하고, 상위 5개 문서만 반환하는 예시입니다.

Query query = new Query()
  .with(Sort.by(Sort.Direction.DESC, "age"))
  .limit(5);
List results = mongoTemplate.find(query, MyDto.class, "sampleCollection");

집계 쿼리 사용하기

MongoDB에서는 집계 작업도 지원합니다. 데이터의 평균값이나 최대값, 최소값 등을 계산하는 데 사용됩니다. 예를 들어, 도시별 평균 나이를 구하는 집계 쿼리는 다음과 같이 작성할 수 있습니다.

Aggregation aggregation = Aggregation.newAggregation(
  Aggregation.group("city").avg("age").as("averageAge")
);

MongoDB에서는 다양한 형태로 데이터를 효율적으로 처리할 수 있는 기능이 많습니다. 이와 같은 CRUD 작업을 통해 데이터베이스를 더욱 효과적으로 관리하실 수 있습니다.

마무리

MongoDB는 강력하고 유연한 데이터 관리 기능을 제공합니다. CRUD 작업을 통해 다양한 형태의 데이터를 쉽게 처리하고, 필요한 정보를 효과적으로 조회, 수정, 삭제할 수 있습니다. 본 포스팅이 MongoDB 사용에 있어 실질적인 도움이 되길 바랍니다.

자주 묻는 질문 FAQ

MongoDB에서 CRUD 작업이란 무엇인가요?

MongoDB의 CRUD 작업은 데이터의 생성(Create), 조회(Read), 수정(Update), 삭제(Delete)를 포함하며, 데이터베이스 관리의 기본적인 기능입니다.

MongoDB에 연결하는 방법은 무엇인가요?

MongoDB에 접속하기 위해서는 MongoClient를 사용하여 서버 주소와 데이터베이스명을 지정하고 연결하면 됩니다.

데이터를 삽입하는 방식은 어떻게 되나요?

단일 문서 또는 여러 개의 문서를 컬렉션에 추가할 수 있으며, 각각의 방식에 따라 insert 메서드를 활용합니다.

특정 데이터의 조건으로 조회하는 방법은?

Query와 Criteria를 사용하여 원하는 조건을 설정하면, 해당 조건에 적합한 데이터를 쉽게 검색할 수 있습니다.

Leave a Comment