Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Membina Nested OR/AND Queries dengan MongoDB Go Driver?

Bagaimana untuk Membina Nested OR/AND Queries dengan MongoDB Go Driver?

Susan Sarandon
Lepaskan: 2024-12-01 15:33:11
asal
292 orang telah melayarinya

How to Construct Nested OR/AND Queries with the MongoDB Go Driver?

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
    }
  }
}
Salin selepas log masuk

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}},
    }},
}
Salin selepas log masuk

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},
    },
}
Salin selepas log masuk

Pengesyoran

  • Untuk mewakili tatasusunan dalam pengendali logik, gunakan bson.A (cth., bson.A{bson.M{"foo": 1}}).
  • $dan ialah pengendali logik lalai, jadi anda tidak perlu memasukkannya secara eksplisit dalam pertanyaan.

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan