安裝或設定
條件
一個正在執行的 MongoDB 伺服器,這裡有更多細節。
設定 Java 專案
MongoDB Java 驅動程式作為 JAR 檔案提供,可以像任何其他 JAR 一樣包含在專案中。例如:
- Maven:在你的
pom.xml
的<dependencies>
部分新增一個條目。
<dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.4.2</version> </dependency>
- Gradle:將以下依賴項新增到
build.gradle
compile 'org.mongodb:mongo-java-driver:3.4.2'
- 手動包含:從此處下載 JAR 檔案並將其新增到專案的類路徑中。
注意:上面示例中顯示的版本是撰寫本文時的最新穩定版本,但你可以選擇此處提供的任何版本。
使用 MongoDB Java 驅動程式
讓我們建立一個 MongoClient
,最簡單的呼叫是:
MongoClient mongoClient = new MongoClient(new ServerAddress("localhost", 27017));
這假設 MongoDB 伺服器在預設埠的 localhost 上執行,並且它是不安全的。對於經過身份驗證的訪問,自定義連線選項,連線到複製集和分片叢集,有許多變體,所有這些都在 Mongo DB Java 驅動程式文件中詳細介紹。
現在我們已經連線了,讓我們建立一個資料庫和一個集合。MongoDB 在第一個文件儲存到它時隱式建立一個集合,所以讓我們這樣做:
MongoDatabase database = mongoClient.getDatabase("starter");
MongoCollection<Document> collection = database.getCollection("superheroes");
Document document = new Document("name", "Superman");
collection.insertOne(document);
注意:你可以顯式建立一個集合, 但上面的用法更常見,當然更適合入門主題。
現在讓我們看看我們是否可以找到我們建立的文件:
FindIterable<Document> documents = purchases.find(Filters.eq("name", "Superman"));
for (Document found : documents) {
System.out.println(found.toJson());
}
上面的程式碼將輸出以下內容(_id
欄位是 MongoDB 的自動生成的文件金鑰):
找到檔案:{“_ id”:{“$ oid”:
5981bd586d47c203904a9cf9
},名稱:超人}
既然我們已經驗證我們已成功建立了一個文件,那麼我們就刪除它:
DeleteResult deleteResult = purchases.deleteOne(Filters.eq("name", "Superman"));
System.out.println(String.format("Deleted %s document(s)", deleteResult.getDeletedCount()));
上面的程式碼將輸出以下內容:
刪除了 1 個檔案
完整的例子
把各個部分放在一起我們得到:
import com.google.common.collect.Lists;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.model.Filters;
import com.mongodb.client.result.DeleteResult;
import org.bson.Document;
import java.util.List;
public class IntroducingTheMongoDBJavaDriver {
public static void main(String... args) throws Exception {
MongoClient mongoClient = new MongoClient(new ServerAddress("localhost", 27017));
MongoCollection<Document> superheroes = mongoClient.getDatabase("starter").getCollection("superheroes");
Document document = new Document("name", "Superman");
superheroes.insertOne(document);
FindIterable<Document> documents = superheroes.find(Filters.eq("name", "Superman"));
for (Document found : documents) {
System.out.println(String.format("Found document: %s", found.toJson()));
}
DeleteResult deleteResult = superheroes.deleteOne(Filters.eq("name", "Superman"));
System.out.println(String.format("Deleted %s document(s)", deleteResult.getDeletedCount()));
long count = superheroes.count();
System.out.println(String.format("Number of superheroes: %s", count));
}
}