StatementResult result = graphBasicService.readStatement(query);
while (result.hasNext())
{
Record record = result.next();
// Values can be extracted from a record by index or name.
System.out.println("nodes: "+record.asMap().values());
}
在上面的代码示例中,我试图检索具有值{mobile,status}的节点。尽管在浏览器上我得到的是List,但上面的代码却只能得到一个值。(一个手机号码)。
关于我获得的更多结果,打印为
移动设备:[node <9>]
这里9代表什么?以及如何检索节点列表以打印手机号码。
如果您需要查询:
MATCH(n:User {mobile:“ 9999999”})-[r:CONTACT]->(m:User {withm:“ true”})-[r2:CONTACT]->(n)返回m
注意: graphBasicService是我执行上述查询的自定义方法。
问题摘要:我正在尝试检索和打印节点列表,但无法这样做。
答案 0 :(得分:1)
我在这里没有看到任何列表。您的查询中没有collect()
,也没有其他任何可以产生列表的函数或过程。您只是获得了一系列结果记录。
通过该查询,每条记录将获得一个节点,因此,如果需要列表,则可以在循环外创建一个列表,然后将该节点添加到循环内的列表中,或者如果要修改查询本身,请使用RETURN collect(m) as users
(或者,如果您只想要数字,请使用RETURN collect(m.mobile)
。如果执行此操作,则将获得一条带有节点列表(或移动电话号码)的单条记录。 / p>
答案 1 :(得分:0)
不用逐条解析,您可以使用list()一次性获取所有数据,然后进行处理。
List<Record> recordList = result.list();
for (Record record : recordList) {
//Parsing code here
}
请参考: https://neo4j.com/docs/api/java-driver/1.0/org/neo4j/driver/v1/StatementResult.html#list--