neo4j - 如何在 Neo4j 中存储带有有序孩子的树?如何在 Cypher 中遍历这样的结构?
问题描述
在 Neo4j 中用有序的孩子存储树的最佳方法是什么?
输入:
1. 标题 1 部分文字 1。 2. 标题 2 2.1。标题 2.1 标题 2.1 下的一些文字。 2.2. 标题 2.2 标题 2.2 下的一些文字。
标题可以是任意的,不一定包含编号。深度是任意的。节点和分支可以属于不止一棵树。
如何取回仍然在一个查询中排序的所有元素?
期望的输出:
|-----------+----------------+-------- -| | 标题 | 内容 | 深度 | |-----------+----------------+-------- -| | 标题 1 | 标题 1 下的一些文字。0 | | 标题 2 | | 0 | | 标题 2.1 | 标题 2.1 下的一些文字。| 1 | | 标题 2.2 | 标题 2.2 下的一些文字。| 1 | |-----------+----------------+-------- -|
我的问题基于关系数据库可以使用嵌套集在一个查询中检索这种结构这一事实。
解决方案
我遇到了同样的问题。从我考虑的所有选项中,最好的选项看起来是一个整数属性来保存“线”的索引。在检索时,记录以该索引作为键进入排序映射。这种方法的一个明显缺点是,应该在对象之间插入一些东西。需要完全重新索引以保持完整性。对于罕见的编辑,索引可以按 10、100 等因子缩放,以减少立即重新索引的可能性。
PS 抱歉,我不使用 Cypher,所以这里没有脚本。
推荐阅读
- php - 循环遍历 JSON 对象,另一个数组中的一个数组
- javascript - 每次循环更改变量
- c - 替换键盘中断(中断 9)进行两次调用而不是一次调用
- visual-studio - 是否可以在 resx 文件中替换令牌?
- powerbi - Power BI:如何使可视化设置切片器值?
- python - 在文件名列表的每个项目中搜索日期时间值
- autohotkey - AutoHotKey - ImageSearch 两个或多个图像
- powershell - 使用 PowerShell 保存 Outlook 附件
- ios - 无法加载捆绑包 UITests,因为它已损坏或缺少必要的资源。尝试重新安装捆绑包
- unix - 从第一列中删除所有前导零,如果找到所有零,则保留 1 个零