Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa pertanyaan regex Pemandu MongoDB Go saya tidak mengembalikan sebarang hasil?

Mengapa pertanyaan regex Pemandu MongoDB Go saya tidak mengembalikan sebarang hasil?

Susan Sarandon
Susan Sarandonasal
2024-11-02 21:35:02789semak imbas

Why is my MongoDB Go Driver regex query not returning any results?

Pertanyaan Regex dalam MongoDB Menggunakan Pemacu Go

MongoDB menyediakan mekanisme pertanyaan yang berkuasa yang membolehkan anda mendapatkan semula dokumen berdasarkan pelbagai kriteria. Salah satu kriteria ini ialah ungkapan biasa, yang sering digunakan untuk padanan corak dan carian subrentetan.

Masalah yang Dihadapi:

Apabila cuba menggunakan pemacu MongoDB Go untuk melakukan pertanyaan ungkapan biasa, pengguna menghadapi masalah di mana hasil yang dijangkakan tidak dikembalikan. Walaupun mengikut contoh dokumentasi, kursor kekal kosong.

Punca Punca:

Punca isu ini terletak pada pembinaan struct primitif.Regex. Medan Corak struct ini menjangkakan corak ungkapan biasa tanpa garis miring di hadapan dan mengekori.

Penyelesaian:

Untuk menyelesaikan isu ini, alih keluar garis miring yang mengelilingi corak ungkapan biasa dalam struktur primitif.Regex. Berikut ialah kod yang diperbetulkan:

<code class="go">filter := bson.D{{"text", primitive.Regex{Pattern: "he", Options: ""}}}</code>

Contoh:

Dengan kod yang diperbetulkan ini, pertanyaan berikut kini seharusnya mengembalikan hasil yang dijangkakan:

<code class="go">ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()

cur, err := coll.Find(ctx, filter)
if err != nil {
    fmt.Println(err)
    return
}

i := 0
for cur.Next(ctx) {
    i = i + 1
}
fmt.Println("Found", i, "elements")</code>

Dengan mengalih keluar garis miring yang mengelilingi corak ungkapan biasa, struct primitive.Regex kini boleh memadankan subrentetan yang dikehendaki dengan betul dalam medan "teks" dokumen dan mengembalikan hasil yang dijangkakan.

Atas ialah kandungan terperinci Mengapa pertanyaan regex Pemandu MongoDB Go saya tidak mengembalikan sebarang hasil?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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