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

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