English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MongoDB Java

이 장에서는 MongoDB CLIENT을 설정하는 방법을 배울 것입니다.

설치

Java 프로그램에서 MongoDB를 사용하기 전에 컴퓨터에 MongoDB CLIENT과 Java가 설정되어 있는지 확인해야 합니다. 컴퓨터에 Java를 설치하려면 Java 튜토리얼을 따라 하세요. 지금, MongoDB CLIENT을 설정하는 방법을 확인해 보겠습니다.

  • jar 파일을 다운로드해야 합니다. mongodb-driver-3.11.2.jar 및 의존성 mongodb-driver-core-3.11.2.jar.. 이러한 jar 파일의 최신 버전을 다운로드하세요.

  • 다운로드한 jar 파일을 클래스 경로에 포함해야 합니다.

데이터베이스 연결

데이터베이스에 연결하려면 데이터베이스 이름을 지정해야 합니다. 데이터베이스가 존재하지 않으면 MongoDB가 자동으로 생성합니다.

다음은 데이터베이스에 연결하는 코드 스니펫입니다.-

import com.mongodb.client.MongoDatabase; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class ConnectToDB { 
   
   public static void main(String args[]) {  
      
      // Mongo客户端创建 
      MongoClient mongo = new MongoClient("localhost", 27017 ); 
   
      // 凭证创建 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("데이터베이스 연결 성공");  
      
      // 데이터베이스 접근 
      MongoDatabase database = mongo.getDatabase("myDb"); 
      System.out.println("Credentials ::"+ credential);     
   } 
}

이제, 다음과 같이 데이터베이스 myDb를 생성하기 위해 이 프로그램을 컴파일하고 실행해 보겠습니다.

$javac ConnectToDB.java $java ConnectToDB

이 프로그램을 실행하면 다음과 같은 출력을 제공합니다.

데이터베이스에 성공적으로 연결되었습니다. Credentials ::MongoCredential{
   mechanism = null; 
   userName = 'sampleUser'; 
   source = 'myDb'; 
   password = <hidden>; 
   mechanismProperties = {};

创建集合

콜렉션을 생성하려면 com.mongodb.client.MongoDatabase 클래스의 createCollection() 메서드를 사용해야 합니다.

다음은 콜렉션 생성 코드 스니펫입니다.-

import com.mongodb.client.MongoDatabase; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class CreatingCollection { 
   
   public static void main(String args[]) {  
      
      // Mongo客户端创建 
      MongoClient mongo = new MongoClient("localhost", 27017 ); 
     
      // 凭证创建 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("데이터베이스 연결 성공");  
      
      //데이터베이스 접근 
      MongoDatabase database = mongo.getDatabase("myDb");  
      
      //创建集合 
      database.createCollection("sampleCollection"); 
      System.out.println("콜렉션 생성 성공"); 
   } 
}

컴파일 시, 이 프로그램은 다음과 같은 결과를 제공합니다.-

데이터베이스에 성공적으로 연결되었습니다. 콜렉션을 성공적으로 생성했습니다.

가져오기/콜렉션 선택

데이터베이스에서 가져오려면/콜렉션을 선택하려면 com.mongodb.client.MongoDatabase 클래스의 getCollection() 메서드를 사용해야 합니다.

다음은 가져오는 것입니다./콜렉션 선택 프로그램-

import com.mongodb.client.MongoCollection; 
import com.mongodb.client.MongoDatabase; 
import org.bson.Document; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class selectingCollection { 
   
   public static void main(String args[]) {  
      
      // Mongo客户端创建 
      MongoClient mongo = new MongoClient("localhost", 27017 ); 
     
      // 凭证创建 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("데이터베이스 연결 성공");  
      
      // 데이터베이스 접근 
      MongoDatabase database = mongo.getDatabase("myDb");  
      
      // 创建集合
      System.out.println("콜렉션 생성 성공"); 
      // 检索集合
      MongoCollection<Document> collection = database.getCollection("myCollection"); 
      System.out.println("myCollection 콜렉션을 성공적으로 선택했습니다"); 
   }
}

컴파일 시, 이 프로그램은 다음과 같은 결과를 제공합니다.-

데이터베이스에 성공적으로 연결되었습니다. 콜렉션을 성공적으로 생성했습니다. 콜렉션 myCollection을 성공적으로 선택했습니다.

문서 삽입

MongoDB에 문서를 삽입하려면 com.MongoDB.client.MongoCollection 클래스의 insert() 메서드를 사용해야 합니다.

이하로 문서 삽입 코드 부분입니다-

import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import com.mongodb.MongoClient;
public class InsertingDocument {
	public static void main(String args[]) {
	// Mongo客户端创建
	MongoClient mongo = new MongoClient("localhost", 27017 );
	// 데이터베이스 접근
	MongoDatabase database = mongo.getDatabase("myDb");
	// 创建集合
	database.createCollection("sampleCollection");
	System.out.println("콜렉션 생성 성공");
	// 检索集合
	MongoCollection<Document> collection = database.getCollection("sampleCollection");
	System.out.println("sampleCollection 콜렉션을 성공적으로 선택했습니다");
	Document document = new Document("title", "MongoDB")
	.append("description", "database")
	.append("likes", 100)
	.append("url", "http://ko.oldtoolbag.com/mongodb/")
	.append("by", "oldtoolbag.com");
	//문서를 집합에 삽입합니다
	collection.insertOne(document);
	System.out.println("문서 삽입 성공");
}

컴파일 시, 이 프로그램은 다음과 같은 결과를 제공합니다.-

데이터베이스에 성공적으로 연결되었습니다. 성공적으로 sampleCollection 선택되었습니다. 문서 삽입 성공

모든 문서 검색

집합에서 모든 문서를 선택하려면 사용하세요com.mongodb.client.MongoCollection 의 classfind()方法이 메서드는 커서를 반환합니다. 따라서 이 커서를 반복해야 합니다.

이하로 모든 문서 선택하는 프로그램입니다-

import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
public class RetrievingAllDocuments {
	public static void main(String args[]) {
		// Mongo客户端创建
		MongoClient mongo = new MongoClient("localhost", 27017 );
		// 凭证创建
		MongoCredential credential;
		credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray());
		System.out.println("데이터베이스 연결 성공");
		// 데이터베이스 접근
		MongoDatabase database = mongo.getDatabase("myDb");
		// 检索集合
		MongoCollection<Document> collection = database.getCollection("sampleCollection");
		System.out.println("sampleCollection 콜렉션을 성공적으로 선택했습니다");
		Document document1 = new Document("title", "MongoDB")
		.append("description", "database")
		.append("likes", 100)
		.append("url", "http://ko.oldtoolbag.com/mongodb/")
		.append("by", "oldtoolbag.com");
		Document document2 = new Document("title", "RethinkDB")
		.append("description", "database")
		.append("likes", 200)
		.append("url", "http://ko.oldtoolbag.com/rethinkdb/")
		.append("by", "oldtoolbag.com");
		List<Document> list = new ArrayList<Document>();
		list.add(document1);
		list.add(document2);
		collection.insertMany(list);
		// 이터레이블 객체를 가져오기
		FindIterable<Document> iterDoc = collection.find();
		int i = 1;
		// 이터레이터를 가져오기
		Iterator it = iterDoc.iterator();
		while (it.hasNext()) {
			System.out.println(it.next());
			i++;
		}
	}
}

컴파일 시, 이 프로그램은 다음과 같은 결과를 제공합니다.-

데이터베이스에 성공적으로 연결되었습니다. 성공적으로 sampleCollection{{_id=5dce4e9ff68a9c2449e197b2, title=MongoDB, description=database, likes=100, url=http://ko.oldtoolbag.com/mongodb/, by=oldtoolbag.com}}Document{{_id=5dce4e9ff68a9c2449e197b3, title=RethinkDB, description=database, likes=200, url=http://ko.oldtoolbag.com/rethinkdb/, by=oldtoolbag.com}}

문서 업데이트

집합에서 문서를 업데이트하려면 사용하세요com.mongodb.client.MongoCollection의 classupdateOne()方法

다음은 첫 번째 문서를 선택하는 프로그램입니다-

import com.mongodb.client.FindIterable; 
import com.mongodb.client.MongoCollection; 
import com.mongodb.client.MongoDatabase; 
import com.mongodb.client.model.Filters; 
import com.mongodb.client.model.Updates; 
import java.util.Iterator; 
import org.bson.Document;  
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class UpdatingDocuments { 
   
   public static void main(String args[]) {  
      
      // Mongo客户端创建 
      MongoClient mongo = new MongoClient("localhost", 27017 ); 
     
      // 凭证创建 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("데이터베이스 연결 성공");  
      
      // 데이터베이스 접근 
      MongoDatabase database = mongo.getDatabase("myDb"); 
      // 检索集合 
      MongoCollection<Document> collection = database.getCollection("sampleCollection");
      System.out.println("myCollection 콜렉션을 성공적으로 선택했습니다"); 
      collection.updateOne(Filters.eq("title", 1), Updates.set("likes", 150));       
      System.out.println("문서가 성공적으로 업데이트되었습니다...");  
      
      // 업데이트 후 문서 검색 
      // 이터레이블 객체를 가져오기
      FindIterable<Document> iterDoc = collection.find(); 
      int i = 1; 
      // 이터레이터를 가져오기 
      Iterator it = iterDoc.iterator(); 
      while (it.hasNext()) {  
         System.out.println(it.next());  
         i++; 
      }     
   }  
}

컴파일 시, 이 프로그램은 다음과 같은 결과를 제공합니다.-

데이터베이스에 성공적으로 연결되었습니다. myCollection 콜렉션을 성공적으로 선택했습니다. 문서가 성공적으로 업데이트되었습니다...Document{{_id=5dce4e9ff68a9c2449e197b2, title=MongoDB, description=database, likes=100, url=http://ko.oldtoolbag.com/mongodb/, by=oldtoolbag.com}}Document{{_id=5dce4e9ff68a9c2449e197b3, title=RethinkDB, description=database, likes=200, url=http://ko.oldtoolbag.com/rethinkdb/, by=oldtoolbag.com}}

문서를 삭제하기

콜렉션에서 문서를 삭제하려면 다음과 같은 클래스를 사용해야 합니다com.mongodb.client.MongoCollectiondeleteOne()方法。

다음은 문서를 삭제하는 프로그램입니다-

import com.mongodb.client.FindIterable; 
import com.mongodb.client.MongoCollection; 
import com.mongodb.client.MongoDatabase; 
import com.mongodb.client.model.Filters;  
import java.util.Iterator; 
import org.bson.Document; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class DeletingDocuments { 
   
   public static void main(String args[]) {  
   
      // Mongo客户端创建 
      MongoClient mongo = new MongoClient("localhost", 27017 );
      
      // 凭证创建 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("데이터베이스 연결 성공");  
      
      // 데이터베이스 접근 
      MongoDatabase database = mongo.getDatabase("myDb"); 
      // 检索集合
      MongoCollection<Document> collection = database.getCollection("sampleCollection");
      System.out.println("sampleCollection 콜렉션을 성공적으로 선택했습니다"); 
      // 파일을 삭제하기 
      collection.deleteOne(Filters.eq("title", "MongoDB")); 
      System.out.println("문서가 성공적으로 삭제되었습니다...");  
      
      // 업데이트 후 문서 검색 
      // 이터레이블 객체를 가져오기 
      FindIterable<Document> iterDoc = collection.find(); 
      int i = 1; 
      // 이터레이터를 가져오기 
      Iterator it = iterDoc.iterator(); 
      while (it.hasNext()) {  
         System.out.println(it.next());  
         i++; 
      }       
   } 
}

컴파일 시, 이 프로그램은 다음과 같은 결과를 제공합니다.-

데이터베이스에 성공적으로 연결되었습니다. sampleCollection 콜렉션을 성공적으로 선택했습니다. 문서가 성공적으로 삭제되었습니다...Document{{_id=5dce4e9ff68a9c2449e197b3, title=RethinkDB, description=database, likes=200, url=http://ko.oldtoolbag.com/rethinkdb/, by=oldtoolbag.com}}

删除集合

要从数据库中删除集合,您需要使用类com.mongodb.client.MongoCollectiondrop()方法。

以下是删除集合的程序。-

import com.mongodb.client.MongoCollection; 
import com.mongodb.client.MongoDatabase;  
import org.bson.Document;  
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class DropingCollection { 
   
   public static void main(String args[]) {  
      // Mongo客户端创建 
      MongoClient mongo = new MongoClient("localhost", 27017 ); 
      // 凭证创建 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("데이터베이스 연결 성공");  
      
      // 데이터베이스 접근 
      MongoDatabase database = mongo.getDatabase("myDb");  
      
      // 创建集合
      System.out.println("콜렉션 생성 성공"); 
      // 检索集合
      MongoCollection<Document> collection = database.getCollection("sampleCollection");
      // 删除集合 
      collection.drop(); 
      System.out.println("已成功删除集合");
   } 
}

컴파일 시, 이 프로그램은 다음과 같은 결과를 제공합니다.-

已成功连接到数据库 Collection sampleCollection selected successfully 已成功删除集合

列出所有集合

要列出数据库中的所有集合,您需要使用类com.mongodb.client.MongoDatabase的listCollectionNames()方法

以下是列出数据库的所有集合的程序。-

import com.mongodb.client.MongoDatabase; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  
public class ListOfCollection { 
   
   public static void main(String args[]) {  
      
      // Mongo客户端创建 
      MongoClient mongo = new MongoClient("localhost", 27017 ); 
      // 凭证创建 
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("데이터베이스 연결 성공");  
      
      // 데이터베이스 접근 
      MongoDatabase database = mongo.getDatabase("myDb"); 
      System.out.println("콜렉션 생성 성공"); 
      for (String name : database.listCollectionNames()) { 
         System.out.println(name); 
      } 
   }
}

컴파일 시, 이 프로그램은 다음과 같은 결과를 제공합니다.-

데이터베이스에 성공적으로 연결되었습니다. 콜렉션 myCollection이 성공적으로 생성되었습니다. myCollection1 myCollection5

그 밖의 MongoDB 메서드 save ()、limit ()、skip ()、sort () 등의 작동 방식은 후속 가이드에서 설명됩니다.