HOWTO · MongoDB

Java を使用して MongoDB で ObjectId を生成する

このチュートリアルでは、Java を使用して MongoDB で ObjectId を生成する方法について説明します。

このページの内容

どのデータベースでも、必要なときに簡単にデータを見つけられるようにデータを整理する必要があります。 この目的のためには、一意のアイデンティティを作成することが非常に重要です。

MongoDB には、ObjectId という名前のフィールドを使用する組み込みの一意の ID システムがあります。

この記事では、ObjectId と、Java プログラムを使用してこれを生成する方法について説明します。 トピックを簡単にするために、トピックを簡単にするための説明付きの例を見ていきます。

MongoDB のObjectId

ObjectId は、MongoDB のフィールド _id を通じてドキュメントを一意に識別するために使用される値です。 ユーザーが新しいドキュメントを挿入すると、システムはこのフィールドを自動的に生成します。

ただし、場合によっては、各ドキュメントに一意の ID を提供するために、設定に基づいて独自の ObjectId を作成する必要があります。 MongoDB データベースを操作できる Java プログラムを作成している場合は、Java を使用した ObjectId の生成に関する次のセクションを参照してください。

Java を使用して ObjectId を生成する

以下の例では、手動で作成された ObjectId を使用してドキュメントを挿入できる Java プログラムを作成する方法を示します。 これを行うには、以下の例を見てください。

import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import org.bson.types.ObjectId;

public class MongoDBJava {
  public static void main(String[] args) {
    MongoClient mongoClient = new MongoClient("localhost", 27017);

    // Selecting the database
    MongoDatabase mydb = mongoClient.getDatabase("Mydb");

    // Generating an ObjectId before creating the document
    ObjectId myid = new ObjectId();

    System.out.println("Generated ID: " + myid.get());

    // Creating a new document object
    Document mydoc = new Document();

    // Appending data to the document
    mydoc.append("_id", myid);
    mydoc.append("Name", "Fred");
    mydoc.append("Email", "Fred@gmail.com");
    mydoc.append("Year", 2022);

    // Inserting the created document into the collection
    mydb.getCollection("mydata").insertOne(mydoc);
    System.out.println("Inserted document successfully");
  }
}

各行の目的はコメントアウトされています。 この例では、最初に MongoDB データベースとの接続を作成しました。

その後、メソッド getDatabase() を使用してデータベースを選択し、myid という名前の新しい ObjectId を生成しました。

次に、Document オブジェクトを作成し、append() メソッドを使用してデータを追加します。 最後に、insertOne() メソッドを使用してコレクションにドキュメントを挿入しました。

上記の例を実行すると、以下の出力が得られます。

Generated ID: 6383c46f57dfc2483d89093c
Inserted document successfully

以下のドキュメントが MongoDB コレクションに追加されていることがわかります。

{ _id: ObjectId("6383c46f57dfc2483d89093c"),
  Name: 'Fred',
  Email: 'Fred@gmail.com',
  Year: 2022 }

ObjectId は 16 進数形式のみをサポートすることに注意してください。 また、プログラムを実行する前に write collection が選択されているかどうかを確認してください。 そうしないと、エラーが表示されます。

いくつかの重要な注意事項:

  1. この記事で紹介するプログラムは Java で書かれています。 そのため、システムにインストールされていることを確認してください。
  2. 最初に MongoDB jar ファイルをインストールして、Java プログラムに含めます。 MongoDB jar をダウンロードするには、この リンク を使用します。