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中文网其他相关文章!