首页  >  文章  >  后端开发  >  如何使用 Go 驱动程序在 MongoDB 中执行正则表达式子字符串查询?

如何使用 Go 驱动程序在 MongoDB 中执行正则表达式子字符串查询?

Susan Sarandon
Susan Sarandon原创
2024-11-04 01:39:29648浏览

How to Perform Regex Substring Queries in MongoDB with the Go Driver?

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn