Mgo(mongo for go)支持物化路径?

时间:2015-09-21 22:11:22

标签: mongodb go bson mgo database

使用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爱好者都可以在这里启发我吗?

谢谢!

1 个答案:

答案 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)