gpt4 book ai didi

java - 如何使用 ExecutionEngine 获取 neo4j 中的关系列表?

转载 作者:行者123 更新时间:2023-12-02 05:52:49 25 4
gpt4 key购买 nike

我在想ExecutionEngine在 java 中对 neo4j 数据库运行密码查询。

我想获取节点存在的所有关系。

我的原始密码是:

MATCH (n:Phone{id:'you'}) MATCH n-[r:calling]->m WHERE n<>m RETURN n, r, m

我在网上看到很多示例,描述了如何从查询中获取 noes 的结果,但我想返回两个节点 nm以及关系r .

与仅返回节点相比,我是否需要做任何不同的事情?

最佳答案

Here's how you execute cypher queries from Java .

这里有一些关于如何获得这些关系的代码。我尚未对此进行测试,但这是正确的一般方法。

String query = "MATCH (n:Phone{id:'you'}) MATCH n-[r:calling]->m WHERE n<>m RETURN n, r, m";

ExecutionEngine engine = new ExecutionEngine( db );

ExecutionResult result;
try ( Transaction ignored = db.beginTx() ) {
result = engine.execute(query);
ResourceIterator<Relationship> rels = result.columnAs("r");
while(rels.hasNext()) {
Relationship r = rels.next();
// Do something cool here.
}
} catch(Exception exc) { System.err.println("ERHMAGEHRD!!!"); }

基本上,使用columnAs()方法来获取结果列。请注意,这里是“r”,因为您的查询将关系返回到该名称的变量中。

好的,现在回答有关查询的问题。在java中,我喜欢从查询中返回尽可能少的内容。如果你需要它,它应该在 return 子句中。如果你不这样做,那就不应该这样。

如果您想要这些关系,请返回它们。不要尝试通过返回节点然后从那里查看来获取关系。这种方法会起作用,但直接建立关系更有意义。

关于java - 如何使用 ExecutionEngine 获取 neo4j 中的关系列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23403933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com