(m:Movie).title .ie.=..=..name="" 如何找到汤姆·汉克斯导演的电影 M。一 【每日一题】什么是图数据库?( 三 )。" />

一 【每日一题】什么是图数据库?( 三 )


如何找到汤姆汉克斯
匹配(p:{name:""})
*n.name=""
SQL
如何找到汤姆汉克斯的电影
MATCH(:{name:""})-->(m:Movie).title
.ie.=..=..name=""
如何找到汤姆·汉克斯导演的电影
MATCH(:{name :""})-[:]->(m:Movie).title
.ie.=..=.vie.=.n.name="".title=""
p>
如何找到汤姆·汉克斯的搭档
MATCH(:{name:""})-->(:电影)
(.movi??e.= ..=..name="").=..=.vie.=..title="演员"
用于更多查询
希望您了解和 SQL 查询之间的区别 。也许你也会很兴奋地了解更多关于它们的信息!我们将在博文中提供一些进一步的参考 。
现在,让我们看看您可以在 :PLAY 图表示例中找到的其他一些查询,并解释发生了什么 。
没有典型的培根数量问题,没有完整的电影图表,我们也不例外!
到目前为止,我们看到的示例一次遍历一种关系 。我们可以轻松地利用这些“join-on-write”来遍历许多关系来回答有趣的问题 。
那么,回到 Kevin Bacon 的数字 。以下查询将从 Kevin Bacon 角色节点开始,然后从该起点开始最多 4 跳以返回所有连接的电影和角色 。
MATCH(bacon:{name:""})-[*1..4]-()ood
我们可以通过使用 *1. .4 查询模式的关系部分的语法来做到这一点:
我们可以在这个电影数据集上做的另一件事是两个节点之间的最短路径 。
一 【每日一题】什么是图数据库?
在这个例子中,让我们找出 Kevin Bacon 和 Meg Ryan 之间的最短路径 。您会发现我们*再次使用关系模式的语法 - 指示一切 。
p= 对您来说可能是新的 。您已经了解了我们如何使用对节点的引用(例如当前查询中的 bacon 或 meg),并且我们可以对关系操作执行相同的操作 。
我们还可以引用整个路径(即涉及的所有节点和关系) 。我们为此使用的语法是 =,在本例中为 p= 。
我们还使用 () - 这是一个简单的最短路径函数,它将返回两个指定节点之间的第一条最短路径 。请注意,可能还有另一条同样短的路径,但这个简单的函数只会带回遇到的第一条路径 。
如果对其他路径相关功能感兴趣,请查看 APOC 和 GDS 中可用的功能 。
=((bacon:{name:""})-[*]-(meg:{name:""}))
对所有人的警告:您可能会看到这个,[*] 并尝试在没有 () 函数或 1..4 范围约束的情况下运行您的图表 。但这很可能会导致一些意想不到的事情发生 。
在我们的 Kevin Bacon 和 Meg Ryan 示例中,即使在这个非常小的数据集中只有 253 个关系,Bacon 和 Ryan 之间的数百万条不同路径也很容易遇到节点和关系之间所有可能的路径组合 。
在您的关系中使用 * 作为查询的一部分时,请非常谨慎地使用它!这个问题没有解决最短路径,因为当遇到比当前识别的最短路径更长的潜在路径时,它会立即被丢弃 。
一个简单的推荐查询
这里有两个查询真正展示了图形数据库的强大功能,我们可以轻松地在数据中使用连接来提出一些建议 。
在我们的第一个查询中,我们正在为汤姆·汉克斯寻找新的联合主演,以便与他尚未合作过的人合作 。查询通过以下方式执行此操作:
MATCH(tom:{name:""})-[:]->(m)(m2)().,count(*)
太好了,所以我们找到了一些潜在的联合主演 。在我们的下一个查询中,我们想推荐汤姆克鲁斯作为与汤姆汉克斯合作的潜在新联合主演 。但是,谁来介绍这些汤姆斯呢?回到我们去的电影排行榜 。
在这个查询中,我们:
MATCH(tom:{name:""})-[:]->(m)(m2)
这是关于“图数据库的工作原理是什么” 。希望大家多多支持编程宝 。


以上关于本文的内容,仅作参考!温馨提示:如遇专业性较强的问题(如:疾病、健康、理财等),还请咨询专业人士给予相关指导!

「辽宁龙网」www.liaoninglong.com小编还为您精选了以下内容,希望对您有所帮助: