创建时CYPHER存储相同标签的节点关系顺序

2023-11-30

我有多个源自一个节点的关系。这些关系中的每一个都具有相同的标签。这些关系指向一个子节点(不一定是唯一的)。在获取通过此关系标签链接到父级的所有子节点后,我通过名为 trueindex 的关系属性对它们进行排序。然后,我有一个节点数组,我的客户端可以按正确的排序顺序迭代它们。

当我尝试“推入、弹出、取消移动等...”到该数组上时,问题就出现了。如果我想在订单的前面添加一个新的关系,我必须创建一个新的关系,使用它将父节点链接到子节点,然后向关系 trueindex 属性添加 0 值。问题是已经存在一个 trueindex 值为零的关系,我需要执行某种 casecading 函数来增加所有其他关系的 trueindex (相同类型,所有关系都源于同一父节点)。我正在尝试找到一种方法来免费获得这种“类似数组”的索引号功能

我能想到的唯一方法是首先删除源自父级的特定标签的所有关系。然后重写整个数组(以及将其 trueindex 加一的所有预先存在的关系)以反映正确的顺序。这对于小情况来说很好,但如果我计划父节点有大量的关系,那么每次我想添加、按索引删除、弹出等时重写整个数组(关系集)就会出现问题但仍然保持源自父节点的关系顺序。

Neo4j 是否具有某种关系功能,可以在创建新关系时按正确的顺序写入?

我非常感谢您提供的建议。


尝试将子节点保留在链表中。结构看起来像

(p:Parent)-[r1:CHILDREN]->(c1:Child)-[r2:NEXT]->(c2:Child)-[r3:NEXT]->(c3:Child)

这可以保持子节点的顺序,并允许您通过两种方式改进与结构的交互:

  1. 将新节点插入到该结构中仅涉及对该节点所在位置“之前”和“之后”的关系的更改,而不是整个结构的更改。例如,要插入newc之间c1 and c2,你删除r2, 创造newc并创造:NEXT关系来自c1 to newc to c2。与其他操作类似:您的所有更改现在都在结构内本地。

  2. 您可以使用关系及其类型来构建数据,而不是关系属性。这更加灵活并且几乎总是更加高效(有时更加高效)。

要从此结构中读取单个子项,您现在可以使用trueindex声明在链表中查找节点的深度,即

MATCH (parent:Parent {parentId: 1234})-[:CHILDREN]->()-[:NEXT*3]->(child)
RETURN child

并检索父级及其所有子级

MATCH (parent:Parent {parentId: 1234})-[:CHILDREN|NEXT*]->(child)
RETURN parent, COLLECT(child) as children
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建时CYPHER存储相同标签的节点关系顺序 的相关文章

随机推荐

  • 经过一段时间的训练后,训练损失值正在增加,但模型检测物体的效果相当好

    我在训练 CNN 从我自己的数据集中检测对象时遇到了一个奇怪的问题 我正在使用迁移学习 并且在训练开始时 损失值正在下降 如预期 但过了一段时间 它变得越来越高 我不知道为什么会发生这种情况 与此同时 当我看着Images使用 Tensor
  • iphone 中的 tableview 问题

    我有一个UITableView已设置属性Grouped 它看起来像这样 边缘呈圆形 这很棒 当我开始滚动UITabelView圆边消失了 看起来像这样 圆边消失了 我应该如何进行以及当我滚动时UITableView上下圆边是否像第一张图片一
  • 我的应用程序中的直接“iTunes 中的评分”链接?

    我在 Stackoverflow 上看到过一些帖子 其中描述了如何允许用户定向到应用商店中的应用 有办法链接吗directly to the 评级和评论表在应用商店中 使用此博客中描述的技术可以实现这一点 http www mementio
  • 单击表格单元格内的按钮时,扩展表格视图并按适当的差异增加滚动视图内容大小

    我有一个 UITableView 它已添加到 UIScrollView 内 作为视图控制器的一部分 该视图控制器粘附到如下所示的模型的一部分 正如您在模型中看到的 UITableView 位于 特色企业 标签和包含绿色和粉色子视图的视图之间
  • 在 Matlab 中组合 2D 矩阵形成 3D 矩阵

    我有 3 个20x2 double arrays A B and C 我想将它们组合成一个 3d 数组D以便D 1 将返回A D 2 将返回B and D 3 将返回C Using cat沿着三维连接可能是一种优雅的方式 D cat 3 A
  • 如何检索 SQL Server RAISERROR(或 PRINT)消息?

    我正在尝试使用 PyODBC 从 python 中的 SQL Server Raiserror 获取警告消息 严重性故意设置得很低 因为它充当打印功能 但不必等到查询完成后再进行打印 我期望的输出会是这样的 Test Message col
  • SQL Server - 对值来自另一个表的列进行 CHECK 约束

    如何在列上设置 CHECK 约束 使其可接受的值范围来自另一个表 而无需硬编码 这是一个简化的示例 OneManyTable RoleID TaskID 10 Val1 10 Val2 20 Val1 20 Val2 MetaDataTab
  • javascript等待php完成功能并刷新页面

    我有以下案例 我有下拉菜单 可以从其中选择网站的货币并使用 onchange 事件触发 javascript 函数 Changecurrency 通过使用jquery的changecurrency 函数 我触发php文件 以便根据下拉选择的
  • Spark 迭代/递归算法 - 打破 Spark 沿袭

    我有一个递归 Spark 算法 它将 10 天的滑动窗口应用于数据集 原始数据集是从按日期分区的 Hive 表加载的 在每次迭代中 一组复杂的操作将应用于包含十天窗口的数据集 然后 最后一个日期被插入到原始 Hive 表中 下一个日期从 H
  • Python 老化时间,第 2 部分:时区 [重复]

    这个问题在这里已经有答案了 继我之前的问题之后 Python 老化时间 我现在遇到了一个关于时区的问题 事实证明它并不总是 0200 因此 当 strptime 尝试这样解析它时 它会抛出异常 我想过用 6 或其他什么方法去掉 0200 但
  • 为什么标记不出现?

    我拥有的 一个 RecyclerView 其中包含餐厅 酒吧等的图像 单击这些图像时会将您带到地图 我想要的 当点击它们时 您会看到一张带有标记的地图 其中标记有您周围的所述地点 我的问题 我在另一个应用程序中执行此操作 但另一个应用程序直
  • ILogger 未注入 Durable Functions v2.0

    目前我正在尝试添加一个ILogger or ILogger lt gt 到 Azure Durable Function 以便在活动函数中使用日志记录 登录编排函数工作正常 并被注入到方法本身中 但尝试构造函数注入ILogger总是导致空异
  • 强制 L1 缓存上的一些数据

    对这个简单的问题表示歉意 仍在与这里的一些内存概念作斗争 问题是 假设我有一个预先计算好的数组 A 我想重复访问它 有没有办法告诉 C 程序让这个数组尽可能靠近 CPU 缓存以获得最快的访问速度 谢谢 在大多数架构上 无法强制阵列使用 L1
  • 红袜混音和延迟

    我正在使用 SOX 混合音频 命令SOX m voice wav audio wav final wav是我正在使用的 我的目标是延迟 10 秒的 voice wav 如果我尝试使用延迟 10 0 那么我会得到双语音 怎样才能做对呢 htt
  • Android Studio 虚拟设备卡在 G 屏幕上

    被困在这个问题上太久了 在Android Studio上启动了一个新项目基本活动应用程序 制作了一个虚拟设备 但每当我启动它时 它都会转到一个 黑屏 然后我擦除了内存 现在它卡在带有 google G 徽标的屏幕上 下面有一个小加载栏 多斯
  • 制作更薄的 UITabBar

    我希望能够通过删除每个项目的标题并回收它们占用的垂直空间来缩小 UITabBar 的高度 就像 Tweetie 2 那样 这似乎无法在 xib 中或以编程方式设置 我是否必须子类化 UITabBar 并推出自己的 自己滚 我确信 Tweet
  • 短路逻辑求值运算符

    是否有短路逻辑运算符 特别是短路AND和短路OR 我可以用在WHEREMySQL 5 5 中的子句 如果没有 有什么替代方案 我的问题的抽象观点以及为什么我需要这个的解释可以在这个小提琴中找到 http sqlfiddle com 2 97
  • 如何在CSS中仅设置部分文本的样式[重复]

    这个问题在这里已经有答案了 我需要在下拉列表选项中添加上标 我尝试了很多方法但没有任何效果 因此 帮助我了解如何仅设置选项文本的一部分的样式 使其看起来像上标 如果您知道在下拉列表选项中添加上标的任何其他方法 请帮助我 谢谢 在 HTML
  • 为什么相同的输入返回两个不同的 MD5 哈希值?

    好吧 我有两个文件 它们是完全相同的 第一个文件是 http iadsonline com servconfig php 第二个文件是 http xzerox info servconfig php 但是 当我使用 md5 file 获取他
  • 创建时CYPHER存储相同标签的节点关系顺序

    我有多个源自一个节点的关系 这些关系中的每一个都具有相同的标签 这些关系指向一个子节点 不一定是唯一的 在获取通过此关系标签链接到父级的所有子节点后 我通过名为 trueindex 的关系属性对它们进行排序 然后 我有一个节点数组 我的客户