使用 mongo 的原始包进行部分匹配

Partial matches using mongo's primitive package

我正在使用 Mongo 的 Primitive 包根据提交的内容获取 bson 值。这就是我目前正在做的

school = "Havard"
value = primitive.Regex{Pattern: school, Options: ""} 

这将只匹配 Havard 的 bson 值,我如何使这个正则表达式不区分大小写并使其匹配,例如 hava

总而言之,如果我使用 hava 进行搜索,我也应该得到 Havard

表达式 primitive.Regex{Pattern: school} 也匹配子字符串,但不区分大小写。使用 "i" 选项使其不区分大小写:

value = primitive.Regex{Pattern: school, Options: "i"}

另请注意,如果 school 的值包含特殊的正则表达式字符,这可能会给您带来意外的结果或错误。所以最好是用例如引用它。使用 regexp.QuoteMeta():

value = primitive.Regex{Pattern: regexp.QuoteMeta(school), Options: "i"}

对于 GO 用户,过滤器如下所示:

filter := bson.D{{"column_name", primitive.Regex{Pattern: school, Options: "i"}}}