我正在寻找任何根节点,具有特定的(很好?很棒?)一个未知深度的孙子节点,它经过多个节点和不同类型的关系,最后到达始终与其父节点HAS_SELECTED相关的ListItem节点。 我都试过了: MATCH (r:Root)-[HAS_SELECTED*]->(l:ListItem {alias: 'test'})
RETURN r 和 MATCH (r:Root)-[HAS_SELECTED*]->(l:ListItem)
WHERE l.alias = 'test'
RETURN r 一个示例图可以是 r r r
我在节点之间有重复的关系,例如:
A ->{weight: 1} B
A ->{weight: 1} B
A ->{weight: 1} B
我想把这些关系合并成形式的一种关系:a->{权重: 3} B代表我的整个图。
我尝试了以下几种方法:
start n = node(*)
match (n)-[r:OCCURENCE]->()
Set r.weight = count(*)
count(*)
但是我的图确实很大,对于每个节点A和B,使用这个查询边会更新两次,而且旧的关系不会被删除。不知道如何在一个查询中建模这两个方面。希望有人能帮忙。
编辑:
尝试使用节点
我不盲目地遵循设计模式(我们只需要了解对象间的交流),但我也不想对它们一无所知。
是否有一个设计模式的名称(类似于,或者可能是一些双调度策略模式--a bopper),但与其重写每个方法和委派,不如将对自己的引用($this)传递到依赖项中?这是程序员工具箱中的一个合理的解决方案吗?
需要一个实际的例子吗?Sure...Continue开始..。
假设您使用的是DI容器,并且可能有一些控制器(MVC)方法,如下所示:
图1:
// Phew! Four dependencies injected here:
public function index(QueryManagerInterfac
当执行Cypher查询以检索具有自同构的特定子图时,假设
MATCH (a)-[:X]-(b)-[:X]-(c),
RETURN a, b, c
似乎默认的行为是返回每个检索到的子图及其所有的自同构。在该示例中,如果(u)-:X-(v)-:X-(w)是与该模式匹配图,则输出将是u,v,w,但也是w,v,u,它们位于同一图中。
有没有办法让每个子图只检索一次?
编辑:如果Cypher在搜索中有一个功能来做这件事,使用某种对称破坏条件,那就太好了,因为它可以减少计算时间。如果不是这样,您将如何进行后处理以找到所需的输出?
我正在寻找一个通用的方法来实现图数据库上的限制模式。
我熟悉关系数据库系统,其中定义具有特定列的表。然后,所有传入的数据都被完全存储,就像在数据库模式中建模的数据一样。所有传入数据都会被自动验证,即不能存储缺少所需列值的记录。
图形数据库(如neo4j )允许不受限制地、自由地存储节点和关系。我想知道是否有类似于图形数据库的模式。我正在寻找一个已建立的符号/定义或一般的aproach来建模图数据库中的限制性模式,它对应于基于关系表的数据库中的表模式定义。
一个示例限制可以是:A node representing a "User" always needs to have at