MongoDB-자바
이 장에서는 MongoDB CLIENT를 설정하는 방법을 배웁니다.
설치
Java 프로그램에서 MongoDB 사용을 시작하기 전에 MongoDB CLIENT 및 Java가 시스템에 설정되어 있는지 확인해야합니다. 컴퓨터에서 Java 설치에 대한 Java 자습서를 확인할 수 있습니다. 이제 MongoDB CLIENT를 설정하는 방법을 살펴 보겠습니다.
항아리를 다운로드해야합니다 mongodb-driver-3.11.2.jar and its dependency 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[] ) {
// Creating a Mongo client
MongoClient mongo = new MongoClient( "localhost" , 27017 );
// Creating Credentials
MongoCredential credential;
credential = MongoCredential.createCredential("sampleUser", "myDb",
"password".toCharArray());
System.out.println("Connected to the database successfully");
// Accessing the database
MongoDatabase database = mongo.getDatabase("myDb");
System.out.println("Credentials ::"+ credential);
}
}
이제 위의 프로그램을 컴파일하고 실행하여 아래와 같이 myDb 데이터베이스를 생성 해 보겠습니다.
$javac ConnectToDB.java
$java ConnectToDB
실행시 위의 프로그램은 다음과 같은 출력을 제공합니다.
Connected to the database successfully
Credentials ::MongoCredential{
mechanism = null,
userName = 'sampleUser',
source = 'myDb',
password = <hidden>,
mechanismProperties = {}
}
컬렉션 만들기
컬렉션을 만들려면 createCollection() 의 방법 com.mongodb.client.MongoDatabase 클래스가 사용됩니다.
다음은 컬렉션을 생성하는 코드 스 니펫입니다-
import com.mongodb.client.MongoDatabase;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
public class CreatingCollection {
public static void main( String args[] ) {
// Creating a Mongo client
MongoClient mongo = new MongoClient( "localhost" , 27017 );
// Creating Credentials
MongoCredential credential;
credential = MongoCredential.createCredential("sampleUser", "myDb",
"password".toCharArray());
System.out.println("Connected to the database successfully");
//Accessing the database
MongoDatabase database = mongo.getDatabase("myDb");
//Creating a collection
database.createCollection("sampleCollection");
System.out.println("Collection created successfully");
}
}
컴파일시 위의 프로그램은 다음과 같은 결과를 제공합니다.
Connected to the database successfully
Collection created successfully
컬렉션 가져 오기 / 선택
데이터베이스에서 컬렉션을 가져 오거나 선택하려면 getCollection() 의 방법 com.mongodb.client.MongoDatabase 클래스가 사용됩니다.
다음은 컬렉션을 가져 오거나 선택하는 프로그램입니다.
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[] ) {
// Creating a Mongo client
MongoClient mongo = new MongoClient( "localhost" , 27017 );
// Creating Credentials
MongoCredential credential;
credential = MongoCredential.createCredential("sampleUser", "myDb",
"password".toCharArray());
System.out.println("Connected to the database successfully");
// Accessing the database
MongoDatabase database = mongo.getDatabase("myDb");
// Creating a collection
System.out.println("Collection created successfully");
// Retrieving a collection
MongoCollection<Document> collection = database.getCollection("myCollection");
System.out.println("Collection myCollection selected successfully");
}
}
컴파일시 위의 프로그램은 다음과 같은 결과를 제공합니다.
Connected to the database successfully
Collection created successfully
Collection myCollection selected successfully
문서 삽입
MongoDB에 문서를 삽입하려면 insert() 의 방법 com.mongodb.client.MongoCollection 클래스가 사용됩니다.
다음은 문서를 삽입하는 코드 스 니펫입니다.
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[] ) {
// Creating a Mongo client
MongoClient mongo = new MongoClient( "localhost" , 27017 );
// Accessing the database
MongoDatabase database = mongo.getDatabase("myDb");
// Creating a collection
database.createCollection("sampleCollection");
System.out.println("Collection created successfully");
// Retrieving a collection
MongoCollection<Document> collection = database.getCollection("sampleCollection");
System.out.println("Collection sampleCollection selected successfully");
Document document = new Document("title", "MongoDB")
.append("description", "database")
.append("likes", 100)
.append("url", "http://www.tutorialspoint.com/mongodb/")
.append("by", "tutorials point");
//Inserting document into the collection
collection.insertOne(document);
System.out.println("Document inserted successfully");
}
컴파일시 위의 프로그램은 다음과 같은 결과를 제공합니다.
Connected to the database successfully
Collection sampleCollection selected successfully
Document inserted successfully
모든 문서 검색
컬렉션에서 모든 문서를 선택하려면 find() 의 방법 com.mongodb.client.MongoCollection클래스가 사용됩니다. 이 메서드는 커서를 반환하므로이 커서를 반복해야합니다.
다음은 모든 문서를 선택하는 프로그램입니다-
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[] ) {
// Creating a Mongo client
MongoClient mongo = new MongoClient( "localhost" , 27017 );
// Creating Credentials
MongoCredential credential;
credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray());
System.out.println("Connected to the database successfully");
// Accessing the database
MongoDatabase database = mongo.getDatabase("myDb");
// Retrieving a collection
MongoCollection<Document> collection = database.getCollection("sampleCollection");
System.out.println("Collection sampleCollection selected successfully");
Document document1 = new Document("title", "MongoDB")
.append("description", "database")
.append("likes", 100)
.append("url", "http://www.tutorialspoint.com/mongodb/")
.append("by", "tutorials point");
Document document2 = new Document("title", "RethinkDB")
.append("description", "database")
.append("likes", 200)
.append("url", "http://www.tutorialspoint.com/rethinkdb/")
.append("by", "tutorials point");
List<Document> list = new ArrayList<Document>();
list.add(document1);
list.add(document2);
collection.insertMany(list);
// Getting the iterable object
FindIterable<Document> iterDoc = collection.find();
int i = 1;
// Getting the iterator
Iterator it = iterDoc.iterator();
while (it.hasNext()) {
System.out.println(it.next());
i++;
}
}
}
컴파일시 위의 프로그램은 다음과 같은 결과를 제공합니다.
Connected to the database successfully
Collection sampleCollection selected successfully
Document{{_id=5dce4e9ff68a9c2449e197b2, title=MongoDB, description=database, likes=100, url=http://www.tutorialspoint.com/mongodb/, by=tutorials point}}
Document{{_id=5dce4e9ff68a9c2449e197b3, title=RethinkDB, description=database, likes=200, url=http://www.tutorialspoint.com/rethinkdb/, by=tutorials point}}
문서 업데이트
컬렉션에서 문서를 업데이트하려면 updateOne() 의 방법 com.mongodb.client.MongoCollection 클래스가 사용됩니다.
다음은 첫 번째 문서를 선택하는 프로그램입니다.
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[] ) {
// Creating a Mongo client
MongoClient mongo = new MongoClient( "localhost" , 27017 );
// Creating Credentials
MongoCredential credential;
credential = MongoCredential.createCredential("sampleUser", "myDb",
"password".toCharArray());
System.out.println("Connected to the database successfully");
// Accessing the database
MongoDatabase database = mongo.getDatabase("myDb");
// Retrieving a collection
MongoCollection<Document> collection = database.getCollection("sampleCollection");
System.out.println("Collection myCollection selected successfully");
collection.updateOne(Filters.eq("title", 1), Updates.set("likes", 150));
System.out.println("Document update successfully...");
// Retrieving the documents after updation
// Getting the iterable object
FindIterable<Document> iterDoc = collection.find();
int i = 1;
// Getting the iterator
Iterator it = iterDoc.iterator();
while (it.hasNext()) {
System.out.println(it.next());
i++;
}
}
}
컴파일시 위의 프로그램은 다음과 같은 결과를 제공합니다.
Connected to the database successfully
Collection myCollection selected successfully
Document update successfully...
Document{{_id=5dce4e9ff68a9c2449e197b2, title=MongoDB, description=database, likes=100, url=http://www.tutorialspoint.com/mongodb/, by=tutorials point}}
Document{{_id=5dce4e9ff68a9c2449e197b3, title=RethinkDB, description=database, likes=200, url=http://www.tutorialspoint.com/rethinkdb/, by=tutorials point}}
문서 삭제
컬렉션에서 문서를 삭제하려면 다음을 사용해야합니다. deleteOne() 의 방법 com.mongodb.client.MongoCollection 수업.
다음은 문서를 삭제하는 프로그램입니다-
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[] ) {
// Creating a Mongo client
MongoClient mongo = new MongoClient( "localhost" , 27017 );
// Creating Credentials
MongoCredential credential;
credential = MongoCredential.createCredential("sampleUser", "myDb",
"password".toCharArray());
System.out.println("Connected to the database successfully");
// Accessing the database
MongoDatabase database = mongo.getDatabase("myDb");
// Retrieving a collection
MongoCollection<Document> collection = database.getCollection("sampleCollection");
System.out.println("Collection sampleCollection selected successfully");
// Deleting the documents
collection.deleteOne(Filters.eq("title", "MongoDB"));
System.out.println("Document deleted successfully...");
// Retrieving the documents after updation
// Getting the iterable object
FindIterable<Document> iterDoc = collection.find();
int i = 1;
// Getting the iterator
Iterator it = iterDoc.iterator();
while (it.hasNext()) {
System.out.println(it.next());
i++;
}
}
}
컴파일시 위의 프로그램은 다음과 같은 결과를 제공합니다.
Connected to the database successfully
Collection sampleCollection selected successfully
Document deleted successfully...
Document{{_id=5dce4e9ff68a9c2449e197b3, title=RethinkDB, description=database, likes=200, url=http://www.tutorialspoint.com/rethinkdb/, by=tutorials point}}
컬렉션 삭제
데이터베이스에서 컬렉션을 삭제하려면 다음을 사용해야합니다. drop() 의 방법 com.mongodb.client.MongoCollection 수업.
다음은 컬렉션을 삭제하는 프로그램입니다-
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[] ) {
// Creating a Mongo client
MongoClient mongo = new MongoClient( "localhost" , 27017 );
// Creating Credentials
MongoCredential credential;
credential = MongoCredential.createCredential("sampleUser", "myDb",
"password".toCharArray());
System.out.println("Connected to the database successfully");
// Accessing the database
MongoDatabase database = mongo.getDatabase("myDb");
// Creating a collection
System.out.println("Collections created successfully");
// Retrieving a collection
MongoCollection<Document> collection = database.getCollection("sampleCollection");
// Dropping a Collection
collection.drop();
System.out.println("Collection dropped successfully");
}
}
컴파일시 위의 프로그램은 다음과 같은 결과를 제공합니다.
Connected to the database successfully
Collection sampleCollection selected successfully
Collection dropped successfully
모든 컬렉션 나열
데이터베이스의 모든 컬렉션을 나열하려면 다음을 사용해야합니다. listCollectionNames() 의 방법 com.mongodb.client.MongoDatabase 수업.
다음은 데이터베이스의 모든 컬렉션을 나열하는 프로그램입니다-
import com.mongodb.client.MongoDatabase;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
public class ListOfCollection {
public static void main( String args[] ) {
// Creating a Mongo client
MongoClient mongo = new MongoClient( "localhost" , 27017 );
// Creating Credentials
MongoCredential credential;
credential = MongoCredential.createCredential("sampleUser", "myDb",
"password".toCharArray());
System.out.println("Connected to the database successfully");
// Accessing the database
MongoDatabase database = mongo.getDatabase("myDb");
System.out.println("Collection created successfully");
for (String name : database.listCollectionNames()) {
System.out.println(name);
}
}
}
컴파일시 위의 프로그램은 다음과 같은 결과를 제공합니다.
Connected to the database successfully
Collection created successfully
myCollection
myCollection1
myCollection5
남은 MongoDB 메서드 save(), limit(), skip(), sort() 등은 후속 자습서에서 설명한 것과 동일하게 작동합니다.