安裝或設定

條件

一個正在執行的 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));
    }
}