Rumah > pembangunan bahagian belakang > Golang > Bagaimana Mencari Dokumen dengan _id Menggunakan bson.RawValue dalam mongo-go-driver?

Bagaimana Mencari Dokumen dengan _id Menggunakan bson.RawValue dalam mongo-go-driver?

Barbara Streisand
Lepaskan: 2024-10-31 18:10:48
asal
1158 orang telah melayarinya

How to Find a Document by _id Using bson.RawValue in mongo-go-driver?

Mencari Dokumen dengan _id Menggunakan mongo-go-driver

Dalam mongo-go-driver, anda boleh mencari dokumen melalui medan _id yang dijana secara automatik. Walau bagaimanapun, isu mungkin timbul apabila medan _id disediakan sebagai bson.RawValue.

Menggunakan bson.RawValue untuk _id

Coretan kod yang disediakan cuba mencari dokumen menggunakan bson.RawValue objek, tetapi ia tidak mengembalikan apa-apa. Untuk membetulkan ini, tukar RawValue kepada ObjectID menggunakan primitive.ObjectIDFromHex.

<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>
Salin selepas log masuk

Contoh Penggunaan

Pertimbangkan dokumen berikut dalam pangkalan data MongoDB anda:

<code class="json">{
  "_id": "5c7452c7aeb4c97e0cdb75bf",
  "name": "John Doe",
  "age": 30
}</code>
Salin selepas log masuk

Untuk mencari dokumen ini menggunakan fungsi di atas, berikan _id sebagai rentetan:

<code class="go">id := "5c7452c7aeb4c97e0cdb75bf"
value, err := findDocumentByID(collection, ctx, id)
if err != nil {
  return nil, err
}</code>
Salin selepas log masuk

Pembolehubah nilai kini akan mengandungi bait yang dinyahkod bagi dokumen yang ditemui.

Atas ialah kandungan terperinci Bagaimana Mencari Dokumen dengan _id Menggunakan bson.RawValue dalam mongo-go-driver?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan