在mongodb docs的materialized path tree structures指南中,他们展示了如何构建数据以支持简单查询的简单示例:
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," } )
db.categories.insert( { _id: "MongoDB", path: ",Books,Programming,Databases," } )
db.categories.insert( { _id: "dbm", path: ",Books,Programming,Databases," } )
只要_id
对每个项目都是唯一的,这就可以正常工作。在我们的例子中,我们正在设计一个课程结构,该结构必须支持SEO:/course-a/lesson-1/introduction
等能够使用的URL。数据设计必须支持重复(例如,多个课程可以有一个叫做#34的课程;介绍"):
我们目前的解决方案是使用物化路径设计创建课程。这是我们意识到它不能使用重复的课程ID。但在扔掉它之前,我想征求你的意见。
有没有办法设计它来支持我们使用物化路径的问题?