Mongodb NoSql自连接类

Mongodb NoSql自连接类,mongodb,amazon-dynamodb,self-join,nosql,Mongodb,Amazon Dynamodb,Self Join,Nosql,我想知道我是否可以用NoSql以任何方式做以下事情。我将以航班为例 假设我有包含以下信息的航班表或航班集合: ... { from:XXX, to:YYY, date:01-01-2016 } { from:YYY, to:XXX, date:02-02-2016 } ... 我需要能够执行诸如自连接之类的操作,以找到完整的路由: {from:XXX,to:YYY,出站:01-01-2016,入站:02-02-2016} 该表应该有许多从到的位置 是否可以在没有关系数据库的情况下实现 是否可

我想知道我是否可以用NoSql以任何方式做以下事情。我将以航班为例

假设我有包含以下信息的航班表或航班集合:

...
{ from:XXX, to:YYY, date:01-01-2016 } 
{ from:YYY, to:XXX, date:02-02-2016 }
...
我需要能够执行诸如自连接之类的操作,以找到完整的路由:
{from:XXX,to:YYY,出站:01-01-2016,入站:02-02-2016}

该表应该有许多从到的
位置

是否可以在没有关系数据库的情况下实现

是否可以在没有关系数据库的情况下实现

这个问题问错了。NoSQL的思想是为特定问题使用专门的数据存储,而不是试图用同一个工具解决每个问题

但是,您的用例尚不清楚-根据您用于查询的数据,您可以简单地执行两次查询并合并结果,或者使用简单的
$或
查询(在mongodb中)来来回查询路径。使用各种工具有几十种方法可以解决这个问题,但这取决于您想要解决的确切问题


飞行示例甚至不适合RDBMS,因为这通常是一个允许(或必要)为每个方向组合两个或多个飞行的示例-neo4j可能是解决图形问题的更简单工具(请注意,我不是说“更好”,因为这可能意味着很多事情…)在AWS DynamoDB中,有一种有效的方法可以做到这一点

使用以下架构创建表:

HashKey:  From_City-To_City
RangeKey: Time
因此,在您的情况下,您的表将如下所示:

HashKey     RangeKey
XXX-YYY     01-01-2016
YYY-XXX     02-02-2016
现在给出了2016年1月1日从XXX到YYY的航班,您可以通过如下方式执行DynamoDB查询来查找返程航班:

HashKey=="YYY-XXX" and RangeKey > "01-01-2016".
此查询应该非常有效,因为已经定义了散列键“YYY-XXX”,并且对范围键进行了排序/索引。因此,表中可以有大量航班信息,但无论表大小如何增长,查询执行时间(大部分)都应该保持不变