2016-03-21 15 views
0

我想保存一些目录结构到我的数据库,所以我有类似dir的数据模型:{name,parent_dir}。但是如果我需要一个完整的路径,那么我可以使用mongodb查询来查看每个目录父目录,而不是根目录,例如/ parent_dir/parent_dir/parent_dir/dir。但事情是这将是太多无用的查询。只有一个mongodb查询可以获得完整的目录队列吗?MongoDB从一个集合链接文档,然后阅读其队列

+0

如果您绝对必须将此结构保存到数据库,那么我建议您使用图形数据库。它使路径查询更简单和优化。以下是图表dbs的列表https://en.wikipedia.org/wiki/Graph_database#List_of_graph_databases – AxxE

回答

0

根据您的使用情况,您可能想要查看Models tree structures,尤其是materialized paths部分。

凡作为一个例子,可以存储象下面这样的路径:

db.categories.insert({ _id: "parent_A", path: null }) 
db.categories.insert({ _id: "parent_B", path: ",parent_A," }) 
db.categories.insert({ _id: "parent_C", path: ",parent_A,parent_B," }) 

虽然这种模式需要使用字符串和正则表达式工作的额外步骤,该模式也与路径的工作提供了更大的灵活性,如通过部分路径查找节点。

希望有所帮助。