MongoDB - Java
Trong chương này, chúng ta sẽ học cách thiết lập MongoDB CLIENT.
Cài đặt
Trước khi bắt đầu sử dụng MongoDB trong các chương trình Java của mình, bạn cần đảm bảo rằng bạn đã thiết lập MongoDB CLIENT và Java trên máy. Bạn có thể xem hướng dẫn Java để cài đặt Java trên máy của mình. Bây giờ, chúng ta hãy kiểm tra cách thiết lập MongoDB CLIENT.
Bạn cần tải lọ mongodb-driver-3.11.2.jar and its dependency mongodb-driver-core-3.11.2.jar.. Đảm bảo tải xuống bản phát hành mới nhất của các tệp jar này.
Bạn cần đưa các tệp jar đã tải xuống vào đường dẫn classpath của mình.
Kết nối với Cơ sở dữ liệu
Để kết nối cơ sở dữ liệu, bạn cần chỉ định tên cơ sở dữ liệu, nếu cơ sở dữ liệu không tồn tại thì MongoDB sẽ tự động tạo nó.
Sau đây là đoạn mã để kết nối với cơ sở dữ liệu -
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);
}
}
Bây giờ, hãy biên dịch và chạy chương trình trên để tạo cơ sở dữ liệu myDb của chúng ta như hình dưới đây.
$javac ConnectToDB.java
$java ConnectToDB
Khi thực thi, chương trình trên cung cấp cho bạn kết quả sau.
Connected to the database successfully
Credentials ::MongoCredential{
mechanism = null,
userName = 'sampleUser',
source = 'myDb',
password = <hidden>,
mechanismProperties = {}
}
Tạo bộ sưu tập
Để tạo một bộ sưu tập, createCollection() phương pháp của com.mongodb.client.MongoDatabase lớp được sử dụng.
Sau đây là đoạn mã để tạo một bộ sưu tập -
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");
}
}
Khi biên dịch, chương trình trên cho bạn kết quả sau:
Connected to the database successfully
Collection created successfully
Lấy / Chọn Bộ sưu tập
Để lấy / chọn một bộ sưu tập từ cơ sở dữ liệu, getCollection() phương pháp của com.mongodb.client.MongoDatabase lớp được sử dụng.
Sau đây là chương trình lấy / chọn bộ sưu tập -
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");
}
}
Khi biên dịch, chương trình trên cho bạn kết quả sau:
Connected to the database successfully
Collection created successfully
Collection myCollection selected successfully
Chèn tài liệu
Để chèn một tài liệu vào MongoDB, insert() phương pháp của com.mongodb.client.MongoCollection lớp được sử dụng.
Sau đây là đoạn mã để chèn một tài liệu -
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");
}
Khi biên dịch, chương trình trên cho bạn kết quả sau:
Connected to the database successfully
Collection sampleCollection selected successfully
Document inserted successfully
Lấy tất cả tài liệu
Để chọn tất cả tài liệu từ bộ sưu tập, find() phương pháp của com.mongodb.client.MongoCollectionlớp được sử dụng. Phương thức này trả về một con trỏ, vì vậy bạn cần phải lặp lại con trỏ này.
Sau đây là chương trình để chọn tất cả các tài liệu -
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++;
}
}
}
Khi biên dịch, chương trình trên cho bạn kết quả sau:
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}}
Cập nhật tài liệu
Để cập nhật một tài liệu từ bộ sưu tập, updateOne() phương pháp của com.mongodb.client.MongoCollection lớp được sử dụng.
Sau đây là chương trình để chọn tài liệu đầu tiên -
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++;
}
}
}
Khi biên dịch, chương trình trên cho bạn kết quả sau:
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}}
Xóa tài liệu
Để xóa một tài liệu khỏi bộ sưu tập, bạn cần sử dụng deleteOne() phương pháp của com.mongodb.client.MongoCollection lớp học.
Sau đây là chương trình để xóa một tài liệu -
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++;
}
}
}
Khi biên dịch, chương trình trên cho bạn kết quả sau:
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}}
Bỏ bộ sưu tập
Để loại bỏ một bộ sưu tập khỏi cơ sở dữ liệu, bạn cần sử dụng drop() phương pháp của com.mongodb.client.MongoCollection lớp học.
Sau đây là chương trình để xóa một bộ sưu tập -
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");
}
}
Khi biên dịch, chương trình trên cho bạn kết quả sau:
Connected to the database successfully
Collection sampleCollection selected successfully
Collection dropped successfully
Liệt kê tất cả các bộ sưu tập
Để liệt kê tất cả các bộ sưu tập trong cơ sở dữ liệu, bạn cần sử dụng listCollectionNames() phương pháp của com.mongodb.client.MongoDatabase lớp học.
Sau đây là chương trình để liệt kê tất cả các bộ sưu tập của một cơ sở dữ liệu:
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);
}
}
}
Khi biên dịch, chương trình trên cho bạn kết quả sau:
Connected to the database successfully
Collection created successfully
myCollection
myCollection1
myCollection5
Các phương thức MongoDB còn lại save(), limit(), skip(), sort() vv hoạt động giống như được giải thích trong hướng dẫn tiếp theo.