假设我有以下关系,如何返回连接到3
,4
和5
(节点1
)的所有节点,但忽略具有某些节点的节点其中,但不是全部(节点2
和3
)。
1--4
1--5
1--6
2--4
3--5
3--6
答案 0 :(得分:1)
我假设您的问题有拼写错误,您打算询问如何返回连接到所有这些节点的所有节点:4,5和6.
这是一个明确仅适用于4,5和6的查询。
MATCH (n)--({id: 4}), (n)--({id: 5}), (n)--({id: 6})
RETURN n;
这是一个可用于任何ID列表的查询(在此示例中:7,8,9,10):
WITH [7, 8, 9, 10] AS list
MATCH (n)--(x)
WITH list, LENGTH(list) AS lth, n, COLLECT(DISTINCT x.id) AS cx
WHERE (LENGTH(cx) >= lth) AND ALL (i IN list WHERE i IN cx)
RETURN n;
答案 1 :(得分:0)
您可以使用UNION子句:http://neo4j.com/docs/stable/query-union.html#union-combine-two-queries-and-remove-duplicates
MATCH (n:Label)
WHERE (n)--(n4)
AND (n)--(n5)
AND (n)--(n6)
RETURN distinct(n)
MATCH (n)
WHERE (n)--(n4)
OR (n)--(n5)
RETURN distinct(n)