嗨,我是MongoDB和Mongoid的新手,对何时使用嵌入式文档以及嵌入的深度有点困惑。
一个虚构的例子:
Library collection has_many :books, which embeds_many :pages, which embeds_many :sections
因为我不能直接说一个章节,所以我必须浏览books.pages.sections,对吧?
这将导致这条路线,libraries/:id/books/:id/pages/:id/sections/:id
这似乎有点疯狂,最好的做法是只有一个层次深,对吧?
一种方法是让路由pages/:id/sections/:id然后在请求中粘贴bookid?
你会更难去询问,比如说,部门吗?例如,如果我需要找到所有有X标签的书?
然而,如果我不完全嵌入,我会有一个额外的查询?
有人能发光吗?谢谢。

最佳答案

首先,我相信没有人能给你一个正确的答案,关于你应该嵌入文档的深度。它高度依赖于具体的项目需求。通常,您应该回答一些问题以选择适当的架构设计:
用户是否会同时更新集合中的同一对象?(或者如果客户丢失了更新,我的老板会怎么说)
我需要支持原子操作吗?
我是否需要独立显示嵌套的集合,或者它们是与父集合一起查询的?
我需要对嵌入的对象进行排序吗?
我需要查询嵌入的对象吗?
如果你要回答1,2-真的;3我需要独立地展示它们(不同的页面);4,5-真的,那么我确信嵌入在你的屁股里会有某种痛苦。
我想额外的查询不应该是个问题。

关于mongodb - 我应该有多深入Mongoid?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8508855/

10-13 04:52
查看更多