【发布时间】:2015-12-18 17:58:45
【问题描述】:
使用 BSON 和 Mgo(用于 go 的丰富 mongodb 驱动程序),一种方法将如何实现物化路径?
在 mongo 文档中记录了物化路径 here。物化路径旨在为多层嵌套数据提供树状结构。
使用纯javascript,命令如下(来自documentation):
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
并且可以使用以下方式查询:
db.categories.find( { path: /,Programming,/ } )
将找到两个都是编程后裔的条目。
如何使用 Mgo 和 BSON 来实现这一点?
Mgo 文档中没有此类文档。我尝试过诸如
之类的尝试result := []bson.M{}
database.C("categories").Find(bson.M{"path": "/,Programming,/"}).All(&result)
fmt.Println(result)
只返回一个空数组[]
有没有 gophers 和 mongo 爱好者可以在这里启发我?
谢谢!
【问题讨论】:
-
您需要研究如何将正则表达式传递到您的查询中。路径存储为字符串,
/,Programming,/是正则表达式。 -
@Martin 嗯.. 好的!我现在正在调查。
标签: mongodb go bson mgo database