MongoDB对分层类型查询的适用性

问题描述 投票:11回答:2

我有一个特殊的数据操作要求,我已经确定了如何在SQL Server和PostgreSQL中进行操作。但是,我对速度不太满意,因此我正在研究MongoDB。

描述查询的最佳方法如下。描绘美国的分层数据:国家,州,县,市。假设某个特定的供应商可以为整个加利福尼亚州提供服务。另一个也许只能服务洛杉矶。潜在地有成千上万的供应商,他们都可以从该层次结构中的某个点向下提供服务。我不会将此与Geo混淆-我正在使用它来说明需求。

使用递归查询,获得可以为特定用户提供服务的所有供应商的列表非常简单。如果他在加利福尼亚州洛杉矶的帕萨迪纳(Pasadena)中说,我们将沿着层次结构走以获取适用的ID,然后向下查询以找到供应商。

我知道可以对其进行优化。同样,这只是一个简单的查询示例。

我知道MongoDB是一个文档存储。这非常适合我的其他需求。问题是它与我描述的查询类型有多适合? (我知道它没有联接-那些是模拟的。)>

我知道这是一个“多长的弦”问题。我只想知道是否有人在MongoDB上有做过这种事情的经验。从0到测试可能要花费我一些时间,如果MongoDB不适合此操作,我希望节省时间。

示例

本地电影商店“ A”可以在Springfield提供蓝光。具有全州分布的连锁店“ B”可以向所有IL提供蓝光。并且按需下载商店“ C”可以提供给全美国。

如果我们想获得伊利诺伊州斯普林菲尔德的所有适用电影供应商,答案将是[A,B,C]。

换句话说,在层次结构的不同级别上有许多供应商。

我有一个特殊的数据操作要求,我已经确定了如何在SQL Server和PostgreSQL中进行操作。但是,我对速度不太满意,因此我正在研究MongoDB。最好的方法...

mongodb hierarchical-data mongodb-.net-driver
2个回答
10
投票

我知道这个问题是在大约一年前提出的,但是从那时起,MongoDB有了针对该问题的官方支持的解决方案,而我只是使用了他们的解决方案。请在此处参考其文档:https://docs.mongodb.com/manual/tutorial/model-tree-structures-with-materialized-paths/


2
投票

请注意,这个问题也在Google网上论坛上问过。有关该讨论,请参见http://groups.google.com/group/mongodb-user/browse_thread/thread/5cd5edd549813148

© www.soinside.com 2019 - 2024. All rights reserved.