MongoDB - 有助于级联层次结构?

Posted

技术标签:

【中文标题】MongoDB - 有助于级联层次结构?【英文标题】:MongoDB - helps with cascading hierarchies? 【发布时间】:2011-11-24 01:35:54 【问题描述】:

在我的应用程序中,我必须维护级联树结构变得越来越普遍。

树定义了权限和与之关联的任何对象。向下级联,以便更改一个,修改(或导出数据)整个子树。

使用 ActiveRecord 和 SQL 处理起来相当复杂。一种选择是将其反规范化并使用 "paths": "root/child1/child2" 和 SQL like-s 来处理它。

但我只是开始怀疑数据库本身是否适合这个,也许考虑使用 MongoDB。

还有其他部分可能不适合与 MongoDB 一起使用:事务(在付款、预订期间)。

所以我的问题是,切换到 MongoDB 是否有助于解决“级联层次结构”问题?

【问题讨论】:

可能重复:***.com/questions/6448415/… 谢谢。那里的链接很好地概述了在 MongoDB 中使用树。但不要认为这是重复的,让我用“是”来回答我的问题。 【参考方案1】:

所以我的问题是,切换到 MongoDB 是否有助于解决“级联层次结构”问题?

老实说,主要的好处是能够将整个层次结构存储在一个文档中。然后,您基本上可以使用他们的权限“注释”文档的某些部分。显然,这样的“注释”实际上并不存在,它们只是文档中的字段,因此这将涉及您为所有这些构建一个层。

所以从理论上讲,做你想做的事是完全可能的,但它确实有一些限制。

特别是,当 MongoDB 查询一个文档时,它会查询整个文档。如果您的整个层次结构适合单个文档,那么您可以通过一个查询获得整个层次结构。如果不是,那么您开始回归到处理此问题的 SQL 方法。

【讨论】:

以上是关于MongoDB - 有助于级联层次结构?的主要内容,如果未能解决你的问题,请参考以下文章

mongodb 命令行用啥命令查询Collection文档结构

Docker搭建mongodb主从结构

mongo 介绍

标签层次结构和处理

MongoDB索引

log4j 日志记录层次结构顺序