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}}
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}}
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!