使用BSON和Mgo(go的丰富mongodb驱动程序),如何实现物化路径?
在mongo文档中记录了物化路径here。物化路径旨在为多级嵌套数据提供树状结构。
使用普通的javascript,命令如下(来自documentation):
urlpatterns = patterns(''
# ...
)
使用以下条目创建集合'类别'
db.categories.insert( { _id: "Books", path: null } )
db.categories.insert( { _id: "Programming", path: ",Books," } )
db.categories.insert( { _id: "Databases", path: ",Books,Programming," } )
db.categories.insert( { _id: "Languages", path: ",Books,Programming," } )
可以使用以下方式查询:
Books > Programming > Databases
Books > Programming > Languages
会发现这两个条目都是编程的后代。
如何使用 Mgo 和 BSON 实现此目标?
Mgo文档中没有此类文档。我尝试过尝试
db.categories.find( { path: /,Programming,/ } )
仅返回空数组result := []bson.M{}
database.C("categories").Find(bson.M{"path": "/,Programming,/"}).All(&result)
fmt.Println(result)
任何地鼠和mongo爱好者都可以在这里启发我吗?
谢谢!
答案 0 :(得分:1)
在 mgo / bson 文档中查看此部分:http://godoc.org/labix.org/v2/mgo/bson#RegEx
应该看起来像这样
database.C("categories").Find(bson.M{"path": &bson.RegEx{Pattern: ",Programming,", Options: "i"}}).All(&result)