2016-03-21 13 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," }) 

雖然這種模式需要使用字符串和正則表達式工作的額外步驟,該模式也與路徑的工作提供了更大的靈活性,如通過部分路徑查找節點。

希望有所幫助。