在 mongodb 文档的物化路径树结构指南中,他们展示了一个简单示例,说明如何构建数据以支持简单查询:
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:able URL,例如/course-a/lesson-1/introduction
. 数据设计必须支持重复(例如,多个课程可以有一个名为“介绍”的课程):
- 课程A
- 简介(课)
- 第 1 部分(课程)
- 第 2 部分(课程)
- 背景(课)
- ...(课程)
- 简介(课)
- 课程 B
- 简介(课)
- 为什么这样有效(课程)
- ...(课程)
我们当前的解决方案是使用物化路径设计创建课程。这时我们意识到它不适用于重复的课程 ID。但在把它全部扔掉之前,我想征求你的意见。
有没有办法设计这个来支持我们使用物化路径的问题?