此问题与that one有关。
我解释了我的小用例以更好地理解我的问题:
我有这种图表
(doc)-[contain]-(sentence)-[with]-(word)
节点(word)可以在它们之间具有语义关系(word)-[rel]-(word)
我想返回(doc)一些[rel]> 10
此查询可以这样做:
MATCH (doc:document)-[contain]-(sentence)-[with]-(ng1:word)-[rel:relations]-(ng2:word)
WITH doc, count(rel) as nbRels, collect(rel) as rels
WHERE nbRels > 10 RETURN doc, nbRels, rels
但我不知道每个[rel]发现了什么(字)。
有可能知道并返回吗?
谢谢,
答案 0 :(得分:1)
未经测试,但您应该能够展开rels
集合并拉出开始和结束节点。类似的东西:
MATCH (doc:document)-[contain]-(sentence)-[with]-(ng1:word)-[rel:relations]-(ng2:word)
WITH doc, count(rel) as nbRels, collect(rel) as rels
WHERE nbRels > 10
WITH doc, UNWIND(rels) as rel,
RETURN doc, STARTNODE(rel), ENDNODE(rel)
但你可能只是想首先收集不同的东西:
MATCH (doc:document)-[contain]-(sentence)-[with]-(ng1:word)-[rel:relations]-(ng2:word)
WITH doc, ng1, collect(ng2) as rels
WHERE LENGTH(rels) > 10
RETURN doc, ng1, rels