MongoDB-Go-Driver 中的正規表示式子字串查詢
正規表示式子字串對於在MongoDB 中執行複雜的文字搜尋至關重要。雖然 mongo shell 提供了使用正規表示式模式進行查詢的簡單方法,但使用官方 Go mongo 驅動程式複製此功能可能具有挑戰性。
問題概述
開發人員在使用 mongo-go-driver 的正規表示式子字串查詢檢索條目時遇到困難。儘管遵循了記錄的範例,但程式碼未能傳回任何結果。
原因
進一步調查,此問題源自於Primitive.Regex 結構。在原始程式碼中,Pattern 包含正斜線 (/),這對於在 Go mongo 驅動程式中使用不是必需的。
解決方案
要解決此問題, Primitive.Regex 中的 Pattern 欄位應該只包含正規表示式模式本身,沒有任何斜線。例如:
<code class="go">filter := bson.D{{"text", primitive.Regex{Pattern: "he", Options: ""}}}</code>
此變更允許 Go mongo 驅動程式正確解釋正規表示式模式並成功執行子字串查詢。
預期結果
使用更正後的程式碼,查詢應從集合中傳回兩個文件:
{ "_id" : ObjectId("5c9cc7e9950198ceeefecbdd"), "text" : "hello world" }, { "_id" : ObjectId("5c9cc7f6950198ceeefecbec"), "text" : "hello" }
這些文件在其「text 」欄位中包含「he」子字串,與查詢中指定的正規表示式模式相符。
以上是如何使用 Go 驅動程式在 MongoDB 中執行正規表示式子字串查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!