Сега имам някои документи, всеки от които има ключ path
и стойност като \A\
, \B\
, \A\C\
, \A\C\D\
, \A\E\
, \A\E\F\
.
Искам да намеря тези, които имат само 1 сегмент. Това означава, че резултатът трябва да бъде \A\
и \B\
. Използвам регулярен израз /^\\[^\\]*\\$/
, който работи добре в MongoDB терминал. Но когато се опитах да го приложа към Go програми, не работи.
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?
(Не знам дали е неуместно, но също така публикувах този въпрос на пощенски списък mgo.users.)
\\` or
\\\`, тъй като някои други езици поддържат този начин, когато са поставени в низ""
- person Sabuj Hassan   schedule 10.04.2014