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

Bagaimana untuk Menyoal MongoDB dari Go Menggunakan Array ID Objek?

DDD
Lepaskan: 2024-10-29 20:06:02
asal
186 orang telah melayarinya

How to Query MongoDB from Go Using an Array of Object IDs?

Menyoal MongoDB daripada Go Menggunakan Tatasusunan ID Objek

Dalam MongoDB, dokumen boleh menyimpan IDnya dalam tatasusunan rentetan atau Objek ID. Apabila menggunakan pakej mgo untuk mendapatkan berbilang dokumen berdasarkan ID Objek mereka yang disimpan dalam tatasusunan, adalah penting untuk memastikan pendekatan yang betul diikuti.

Pertanyaan Salah

Pertanyaan yang diberikan:

query := bson.M{"_id": bson.M{"$in": ids}}
Salin selepas log masuk

tidak betul untuk ID Objek kerana id ialah tatasusunan rentetan. MongoDB menjangkakan ID Objek untuk operator $in.

Pertanyaan Betul untuk ID Objek

Untuk membuat pertanyaan untuk ID Objek yang disimpan dalam tatasusunan, tukar rentetan kepada ID Objek sebelum membina pertanyaan:

oids := make([]bson.ObjectId, len(ids))
for i := range ids {
  oids[i] = bson.ObjectIdHex(ids[i])
}
query := bson.M{"_id": bson.M{"$in": oids}}
Salin selepas log masuk

Gelung for berulang pada tatasusunan rentetan, menukar setiap satu kepada ID Objek menggunakan bson.ObjectIdHex(rentetan) dan menyimpannya dalam kepingan oids. Potongan oid yang terhasil akan mengandungi ID Objek. Pertanyaan itu kemudiannya dibina menggunakan kepingan oids untuk operator $in.

Dengan menggunakan pertanyaan yang betul untuk ID Objek, anda boleh mendapatkan berbilang dokumen dengan ID yang sepadan dengan cekap daripada MongoDB menggunakan Go dan pakej mgo.

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

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan