mongodb IDクエリgolang

PHPz
PHPzオリジナル
2023-05-15 10:33:371407ブラウズ

MongoDB は、最新のインターネット アプリケーションで広く使用されている非常に人気のあるドキュメント データベースです。 MongoDB を使用する場合、一意の ID を使用してドキュメントをクエリする必要がある場合があります。この一意の ID は、MongoDB の _object ID_ です。この記事では、Go で MongoDB ID を使用してドキュメントをクエリする方法を説明します。

オブジェクト ID は、MongoDB 内のドキュメントの一意の識別子です。これらは、MongoDB によって生成される 12 バイトのバイナリ値で、タイムスタンプ、マシン ID、ランダム値が含まれます。オブジェクト ID の一意性と予測不可能性 (ランダム性) により、オブジェクト ID は MongoDB で広く使用されています。オブジェクト ID は、MongoDB では次の用途に使用されます。

  • これはドキュメントの一意の識別子であり、コレクション内でドキュメントを一意にします。
  • これはインデックス作成のデフォルトであるため、MongoDB はドキュメントを迅速に検索できます。
  • MongoDB のソート基準として使用できます。

Go 言語の MongoDB ドライバーは、オブジェクト ID 構造タイプを提供します。この構造体の定義は次のとおりです。

type ObjectID [12]byte

次に、次のコードを使用して新しいオブジェクト ID を生成します。

id := bson.NewObjectId()

これにより、新しいオブジェクト ID が作成され、ファイルに保存されます。変数ID。次のコードを使用して、これを MongoDB のドキュメントに追加できます:

doc := bson.M{
    "name": "John Doe",
    "_id":  id,
}
err := collection.Insert(doc)
if err != nil {
    log.Fatal(err)
}

この例では、bson.M タイプを使用してドキュメントを作成し、オブジェクト ID をドキュメントに追加します。次に、このドキュメントを MongoDB コレクションに挿入します。

特定のオブジェクト ID を使用して MongoDB ドキュメントにクエリを実行する場合は、次のコードを使用してクエリを作成できます:

id, err := bson.ObjectIDFromHex("5f0f786af6c7a28b501351e6")
if err != nil {
    log.Fatal(err)
}
filter := bson.M{"_id": id}

この例では、 bson.ObjectIDFromHex() を使用します。 16 進文字列の Parse Object ID からクエリを作成する関数。次に、オブジェクト ID をフィルタに追加して、この特定のオブジェクト ID を持つドキュメントのみをクエリします。

次に、次のコードを使用して、MongoDB から特定のオブジェクト ID を持つドキュメントをクエリできます。

var result bson.M
err := collection.FindOne(context.Background(), filter).Decode(&result)
if err != nil {
    log.Fatal(err)
}
fmt.Println(result)

この例では、collection.FindOne() メソッドを使用して、特定のオブジェクト ID ID ドキュメント。この特定のオブジェクト ID を持つドキュメントのみがクエリされるように、フィルターをパラメーターとして渡します。次に、タイプ bson.M の変数 result を使用してクエリ結果を保存します。

上記は、Go で MongoDB ID を使用してドキュメントをクエリするための基本的な手順です。 MongoDB のドライバーには、これらの一意の識別子の解析とクエリを実行するための非常に便利なメソッドがいくつか用意されているため、MongoDB ID を使用したドキュメントのクエリは非常に簡単です。アプリケーションのデータベースとして MongoDB を使用している場合、オブジェクト ID は非常に重要な概念となるため、Go to クエリ ドキュメントでのオブジェクト ID の使用方法を必ず理解してください。

以上がmongodb IDクエリgolangの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。