使用Go 驅動程式在MongoDB 中進行正規表示式查詢
MongoDB 提供了強大的查詢機制,讓您根據各種條件檢索文檔。其中一個標準是正規表示式,它通常用於模式匹配和子字串搜尋。
遇到的問題:
嘗試使用 MongoDB Go 驅動程式執行時在正規表示式查詢中,使用者遇到了未傳回預期結果的問題。儘管遵循了文檔的範例,遊標仍然為空。
根本原因:
此問題的根本原因在於primitive.Regex 結構的構造。此結構體的 Pattern 欄位需要一個不帶前導斜線和尾隨斜線的正規表示式模式。
解決方案:
要解決此問題,請刪除正規表示式模式周圍的斜線在 Primitive.Regex 結構中。這是修正後的程式碼:
<code class="go">filter := bson.D{{"text", primitive.Regex{Pattern: "he", Options: ""}}}</code>
範例:
使用此修正後的程式碼,以下查詢現在應該傳回預期結果:
<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>
透過刪除正規表示式模式周圍的斜杠,primitive.Regex 結構現在可以正確匹配文件「文字」欄位中所需的子字串並傳回預期結果。
以上是為什麼我的 MongoDB Go Driver 正規表示式查詢沒有回傳任何結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!