Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyoal MongoDB dari Golang menggunakan Array ID Objek?

Bagaimana untuk Menyoal MongoDB dari Golang menggunakan Array ID Objek?

DDD
DDDasal
2024-10-31 02:06:29608semak imbas

How to Query MongoDB from Golang using an Array of Object IDs?

Menyoal MongoDB dari Golang Menggunakan Tatasusunan ID Objek

Dalam MongoDB, anda boleh menyimpan tatasusunan dokumen, setiap satu dengan _id uniknya sendiri . Ini membolehkan anda mengaitkan berbilang dokumen dengan dokumen induk. Apabila membuat pertanyaan untuk dokumen ini menggunakan pakej mgo dan bson Golang, adalah penting untuk menukar tatasusunan _id kepada jenis yang sesuai.

Penyelesaian

Jika nilai _id dalam tatasusunan hanyalah rentetan hex, kod yang disediakan adalah betul:

<code class="go">query := bson.M{"_id": bson.M{"$in": ids}}
c.Find(query).All()</code>

Walau bagaimanapun, jika nilai _id ialah pengecam objek (ObjectId), anda perlu menukarnya kepada jenis yang betul:

<code class="go">oids := make([]bson.ObjectId, len(ids))
for i := range ids {
  oids[i] = bson.ObjectIdHex(ids[i])
}
query := bson.M{"_id": bson.M{"$in": oids}}</code>

Penukaran ini diperlukan kerana operator $in memerlukan tatasusunan nilai ObjectId, bukan rentetan hex. Dengan menukar rentetan hex kepada jenis ObjectId, anda boleh membuat pertanyaan dengan betul untuk dokumen yang dikaitkan dengan nilai _id yang disediakan.

Atas ialah kandungan terperinci Bagaimana untuk Menyoal MongoDB dari Golang menggunakan Array ID Objek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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