java - 在neo4j中比较两个图有什么简单的方法吗
问题描述
我的后端生成一个包含一个节点的图(我们称之为节点 1),该图如下所示
1 (TOPNODE)
/ \
2 1 2
/ \
3 3 4
/ \
4 5 6
顶部节点包含图表的生成日期。
之后,所有偶数级别(包含节点 1、2、5 和 6 的级别 2 和级别 4)都包含一个唯一名称和一个值,即。一个电话号码。
所有奇数级别(级别 3 AKA:节点 3 和 4)都包含其父名称和子信息。
在我的服务中,我可以编辑图表的一部分。例如:我可以更改节点中的值(NOT THE NAME)。或者我可以一次删除节点。但是我只能通过生成子图的那部分来访问编辑的信息。
所以我的问题是:我可以将完整的图导入 JAVA,然后仅将该子图与刚刚生成的新子图进行比较,然后创建旧图的新版本但进行更改?
我尝试过的是:将所有图形作为 JSON 拉入 java,并使用它与较小的图形进行比较,这是可行的。但我不知道是否有更有效的方法,或者是否有任何方法可以将 java 中的节点作为实际节点而不是 JSON。要将其转换为 JSON,我执行了以下操作:
Session session = driver.session();
String message = "START n=node(*) MATCH (n)-[r]->(m) RETURN n,r,m;";
StatementResult result = session.run(message);
while ( result.hasNext() ) {
Record record = result.next();
Gson gson = new Gson();
System.out.println(gson.toJson(record.asMap()));
String m = gson.toJson(record.asMap().get("n"));
JSONObject json = new JSONObject(gson.toJson(record.asMap()));
convert(json,m);
}
session.close();
解决方案
推荐阅读
- javascript - 在 .then 函数中返回嵌套在 forEach 中的承诺
- reverse-proxy - 球童重写和重新分配
- python - 使用 API 访问 sqlalchemy 中的关系表数据
- java - 导出 VS Code Java 项目以在 VS Code 外部使用
- java - 这是我得到的错误:类型不匹配:无法从双精度转换为双精度 []
- c# - .Net Core 自动构建中的 BuildBunderMinifier
- excel - Can someone provide the technical reason why the `Interior.Color` property can't be assigned from one range to another in Excel VBA?
- ios - Swift 后台线程上来自 Realm 的不一致状态
- gis - 安装后的 Geogig 错误
- css - 将 CSS plus 选择器与自定义组件一起使用