MongoDB - Java: A Beginner's Guide

안녕하세요, 미래의 MongoDB 마법사 여러분! MongoDB와 Java의 세계로의 흥미로운 여정에 함께할 것을 기쁜 마음으로 맞이합니다. 컴퓨터 과학을 가르친 지 오래된 저로서는 이 조합이 마치 펜타치와 젤리처럼 - 정말 맛있는 것입니다! 그럼 손을 놓고 시작해 보겠습니다, 어때요?

MongoDB - Java

설치

MongoDB의 마법을 만들기 전에, 우리의 주방(을) 준비해야 합니다. 걱정하지 마세요, 이 것은 IKEA 가구를 조립하는 것보다 쉽습니다!

  1. 먼저, 공식 웹사이트에서 MongoDB를 다운로드하고 설치합니다.
  2. 다음으로, Maven을 사용하고 있다면 프로젝트에 MongoDB Java 드라이버를 추가해야 합니다. pom.xml에 다음을 추가하세요:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>4.3.0</version>
</dependency>

Maven을 사용하지 않고 있다면, 걱정하지 마세요! JAR 파일을 다운로드하여 수동으로 클래스 패스에 추가할 수 있습니다. 자동 변속과 수동 변속 사이의 선택처럼 - 둘 다 목적지에 도달시킵니다!

데이터베이스에 연결

이제 모든 준비가 끝났으니, 데이터베이스에 연결해 보겠습니다. 마치 전화를 걸 듯이, 데이터베이스에 연결합니다!

import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoDatabase;

public class MongoDBConnection {
public static void main(String[] args) {
// MongoDB 클라이언트 생성
MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");

// 데이터베이스에 연결
MongoDatabase database = mongoClient.getDatabase("myDatabase");

System.out.println("데이터베이스에 성공적으로 연결되었습니다!");
}
}

이 코드에서 우리는 MongoClient을 생성하고 "myDatabase"라는 데이터베이스에 연결합니다. 데이터베이스가 존재하지 않는다면, MongoDB가 자동으로 생성해 줍니다. 정말 친절하죠?

컬렉션 생성

MongoDB의 컬렉션은 관계형 데이터베이스의 테이블과 비슷하지만 훨씬 더 멋집니다. 스키마가 없기 때문에, 다양한 유형의 문서를 담을 수 있습니다. 모두가 초대된 파티처럼!

import com.mongodb.client.MongoCollection;
import org.bson.Document;

// ... (데이터베이스에 연결하는 이전 코드)

MongoCollection<Document> collection = database.getCollection("myCollection");
if (collection == null) {
database.createCollection("myCollection");
System.out.println("컬렉션 성공적으로 생성되었습니다!");
} else {
System.out.println("컬렉션이 이미 존재합니다!");
}

이 코드는 "myCollection"이라는 컬렉션이 존재하는지 확인합니다. 존재하지 않는다면, 생성합니다. 마치 냉장고에 우유가 있는지 확인하고, 없다면 사러가는 것과 같습니다!

컬렉션 선택

컬렉션이 준비되면, 어떻게 선택할지 알아야 합니다. 마치 장난감 상자에서 어떤 장난감을 선택할지 결정하는 것처럼!

MongoCollection<Document> collection = database.getCollection("myCollection");
System.out.println("선택된 컬렉션: " + collection.getNamespace().getCollectionName());

이 코드는 "myCollection" 컬렉션을 선택하고 그 이름을 출력합니다. 간단하지 않나요?

문서 추가

이제 컬렉션에 데이터를 추가해 보겠습니다. MongoDB에서 데이터는 문서로 저장됩니다. JSON 오브젝트와 비슷합니다.

Document document = new Document("name", "John Doe")
.append("age", 30)
.append("city", "New York");

collection.insertOne(document);
System.out.println("문서가 성공적으로 추가되었습니다!");

이 코드는 이름, 나이, 도시를 포함하는 문서를 생성하고 컬렉션에 추가합니다. 마치 양식을 작성하고 제출하는 것과 같습니다!

모든 문서检索

데이터가 무엇이 되든, 검색할 수 없다면 무의미합니다. 컬렉션에서 모든 문서를 가져와 보겠습니다.

import com.mongodb.client.FindIterable;
import static com.mongodb.client.model.Filters.*;

FindIterable<Document> documents = collection.find();
for (Document doc : documents) {
System.out.println(doc.toJson());
}

이 코드는 모든 문서를 검색하고 JSON 형식으로 출력합니다. 마치 쿠키 통에서 모든 쿠키를 요청하는 것과 같습니다!

문서 업데이트

occasionally, we need to update our data. Maybe John moved to a new city?

collection.updateOne(eq("name", "John Doe"), new Document("$set", new Document("city", "San Francisco")));
System.out.println("문서가 성공적으로 업데이트되었습니다!");

이 코드는 John Doe의 도시를 San Francisco로 업데이트합니다. 마치 이사할 때 주소를 업데이트하는 것과 같습니다!

문서 삭제

occasionally, we need to remove data. Let's say John doesn't want to be in our database anymore.

collection.deleteOne(eq("name", "John Doe"));
System.out.println("문서가 성공적으로 삭제되었습니다!");

이 코드는 John Doe의 문서를 삭제합니다. 마치 과제에서 실수를 지우는 것과 같습니다!

컬렉션 제거

컬렉션 전체를 제거하고 싶다면, 다음과 같이 합니다.

collection.drop();
System.out.println("컬렉션이 성공적으로 제거되었습니다!");

이 코드는 전체 컬렉션을 제거합니다. 마치 전체 장난감 상자를 비우는 것처럼 - 이 작업은 신중하게 해야 합니다!

모든 컬렉션 목록

마지막으로, 데이터베이스에 있는 모든 컬렉션을 목록으로 보이게 할 수 있습니다.

for (String collectionName : database.listCollectionNames()) {
System.out.println(collectionName);
}

이 코드는 데이터베이스에 있는 모든 컬렉션 이름을 목록으로 출력합니다. 마치 모든 게임을 인벤토리로 만드는 것과 같습니다!

이제 우리가 다루었던 모든 메서드를 요약하는 표를 보여드리겠습니다:

메서드 설명
MongoClients.create() MongoDB 클라이언트 생성
mongoClient.getDatabase() 데이터베이스에 연결
database.getCollection() 컬렉션을 가져오거나 생성
collection.insertOne() 문서 추가
collection.find() 문서 검색
collection.updateOne() 문서 업데이트
collection.deleteOne() 문서 삭제
collection.drop() 컬렉션 제거
database.listCollectionNames() 모든 컬렉션 목록

이제 여러분은 MongoDB와 Java의 fascinatng 세계로의 첫 걸음을 내셨습니다. 연습이 완벽을 만들기 때문에, 다양한 조합을 실험해 보지 마세요. 누가 알략니까? 당신은 다음 큰 데이터베이스 주도 애플리케이션을 만들 수도 있습니다! 행복하게 코딩하세요!

Credits: Image by storyset