mongo-go-driver で bson.RawValue を使用して _id でドキュメントを検索する方法は?
Oct 31, 2024 pm 06:10 PMmongo-go-driver を使用した _id によるドキュメントの検索
mongo-go-driver では、自動生成された _id フィールドによってドキュメントを検索できます。ただし、_id フィールドが bson.RawValue として提供される場合、問題が発生する可能性があります。
_id に bson.RawValue を使用する
提供されたコード スニペットは、bson.RawValue を使用してドキュメントを検索しようとします。オブジェクトを返しますが、何も返しません。これを修正するには、primitive.ObjectIDFromHex を使用して RawValue を ObjectID に変換します。
<code class="go">import ( "context" "encoding/hex" "encoding/json" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson/bsoncodec" "go.mongodb.org/mongo-driver/bson/bsonprimitive" "go.mongodb.org/mongo-driver/mongo" ) func findDocumentByID(collection *mongo.Collection, ctx context.Context, id string) (*bson.Raw, error) { objID, err := bsonprimitive.ObjectIDFromHex(id) if err != nil { return nil, err } value := collection.FindOne(ctx, bson.M{"_id": objID}) return value.DecodeBytes() }</code>
使用例
MongoDB データベース内の次のドキュメントについて考えてみましょう。
<code class="json">{ "_id": "5c7452c7aeb4c97e0cdb75bf", "name": "John Doe", "age": 30 }</code>
上記の関数を使用してこのドキュメントを検索するには、_id を文字列として指定します。
<code class="go">id := "5c7452c7aeb4c97e0cdb75bf" value, err := findDocumentByID(collection, ctx, id) if err != nil { return nil, err }</code>
値変数には、見つかったドキュメントのデコードされたバイトが含まれます。
以上がmongo-go-driver で bson.RawValue を使用して _id でドキュメントを検索する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Go Language Packのインポート:アンダースコアとアンダースコアなしの違いは何ですか?

GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか?

GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか?

トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか?

Linterと静的分析ツールを使用して、GOコードの品質と保守性を向上させるにはどうすればよいですか?

MySQLクエリ結果リストをGO言語のカスタム構造スライスに変換する方法は?
