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!