Pertanyaan Logik Bersarang dengan Pemacu MongoDB Go
Pertanyaan MongoDB selalunya memerlukan penggunaan operator logik bersarang (DAN/ATAU) untuk menapis dokumen berdasarkan pada pelbagai kriteria. Dalam pemacu Go MongoDB, pertanyaan logik bersarang boleh dibina menggunakan jenis bson.D dan bson.M.
Membina Nested OR/AND Queries
Untuk mencipta pertanyaan OR/AND bersarang, anda perlu menggunakan jenis bson.D untuk mewakili operator logik luar (cth., $and) dan lulus bson.E unsur ke dalamnya. Setiap elemen bson.E mewakili pasangan nilai medan, dengan nama medan boleh menjadi operator logik (cth., $or) dan nilai boleh menjadi bson.D atau bson.A (untuk tatasusunan).
Contoh Nested OR/AND Query
Pertimbangkan MongoDB pertanyaan:
{ "$and": { "p": 10, "$or": { "s": 30, "a": 1 } } }
Untuk mewakili pertanyaan ini dalam Go menggunakan pemacu MongoDB, anda boleh menggunakan kod berikut:
filter := bson.D{ {"p", 10}, {"$or", bson.A{ bson.D{{"s", 30}}, bson.D{{"a", 1}}, }}, }
Dalam contoh ini, bson.D mewakili $ luar dan operator, dan bson.A mewakili operator $or bersarang. Setiap bson.D dalam $or mewakili sub-pertanyaan.
Menggunakan bson.M untuk Pertanyaan Bersarang
Anda juga boleh menggunakan jenis bson.M untuk mewakili pertanyaan bersarang. bson.M ialah peta[rentetan]antara muka{} yang boleh mengandungi nama medan dan nilai sepadannya. Nilai boleh menjadi contoh bson.M yang lain, mewakili pertanyaan bersarang.
Sebagai contoh, pertanyaan di atas boleh diwakili menggunakan bson.M seperti berikut:
filter := bson.M{ "p": 10, "$or": bson.A{ bson.M{"s": 30}, bson.M{"a": 1}, }, }
Pengesyoran
Dengan mengikut garis panduan ini, anda boleh membuat pertanyaan OR/AND bersarang dengan cekap dalam Go menggunakan pemacu MongoDB.
Atas ialah kandungan terperinci Bagaimana untuk Membina Nested OR/AND Queries dengan MongoDB Go Driver?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!