neo4j - 从多个相关对象中获取属性值到一个 return 行

neo4j - get attribute value from multiple related objects into one return row

我有以下情况:

MATCH (n) WHERE n.Type IN ['a', 'b', 'c'] WITH n OPTIONAL MATCH (f)-[:PART_OF]->(n) RETURN CASE WHEN n.Type = a THEN f.attribute WHEN n.Type = b then f.attribute1 ELSE '' END, n.type

即使 n 有多个相关对象,我也希望返回一行。

以下解决方案是不够的,因为我不知道相关对象的确切数量。 1..n 关系可能来自 (f) - [:part_of] -> (n):

MATCH (n) WHERE n.Type IN ['a', 'b', 'c'] WITH n OPTIONAL MATCH (f)-[:PART_OF]->(n) WITH n, COLLECT({ftype: f.Type, fsubType:f.SubType}) AS ff RETURN CASE WHEN n.Type = a AND ff[0].ftype = x THEN 'z' .....

谢谢!

匹配 (n) n.Type 在 ['x', 'y'] WITH n 可选匹配 (f)-[:PART_OF]->(n) WITH n, COLLECT({ftype: f.Type, fsubtype:f.SubType, flocalipaddr: f.LocalIpAddr, fip: f.IP, fremotetunnelendpoint: f.RemoteTunnelEndpoint, fpeername: f.PEERNAME}) 作为 fcp WITH n, fcp, [x IN fcp WHERE x.ftype = 'IKEP' AND x.fsubtype = 'Security Gateway' and n.SubType = 'eNodeB'| x.fpeername] AS fpeername, [x IN fcp WHERE x.ftype = 'DEVIP' AND x.fsubtype = 'SYNC' and n.SubType = 'eNodeB'| x.fip] 作为 fip RETURN 'Base Station' AS OptType,n.SubType,fpeername[0],fip[0]