【发布时间】:2014-05-24 13:18:36
【问题描述】:
现在我有一些文档,每个文档都有一个键 path 和值如 \A\、\B\、\A\C\、\A\C\D\、\A\E\、\A\E\F\。
我想找到只有 1 段的那些。这意味着结果应该是\A\ 和\B\。我使用正则表达式/^\\[^\\]*\\$/,它在 MongoDB 终端中运行良好。但是当我尝试将它应用到 Go 程序时它不起作用。
围棋代码:
var nodeList []NodeEntry // NodeEntry would match every field of one document
err = c.Find(bson.M{"path": bson.M{"$regex": bson.RegEx{"^\\[^\\]*\\$", ""}}}).All(&nodeList)
fmt.Println(nodeList)
输出:
[]
太奇怪了,然后我发现任何带有\\的Regex都会产生一个空结果。
难道是mgo的bug?
(不知道是不是不合适,不过我也把这个问题发到mgo.users mailing list了。)
【问题讨论】:
-
尝试使用
\\` or\\\`,因为其他一些语言在将它们放在字符串""中时以这种方式支持 -
@SabujHassan 对不起,是编辑器的问题吗?我真的不知道你想说什么。
标签: regex mongodb go mgo unicode-escapes