NEO4J: Localizando nós desconectados

Eu tenho esses dados de amostra

Com a consulta de amostra

CREATE (a1:A {title: "a1"})
CREATE (a2:A {title: "a2"})
CREATE (a3:A {title: "a3"})

CREATE (b1:B {title: "b1"})
CREATE (b2:B {title: "b2"})

MATCH (a:A {title: "a1"}), (b:B {title: "b1"})
CREATE (a)-[r:LINKS]->(b)

MATCH (a:A), (b:B) return a,b

O que estou tentando alcançar:

Localize todo o tipo de nó A que não está conectado ao tipo de nó B (ans: a2, a3)Localize todos os nós do tipo B que não estão conectados ao tipo de nó A (ans: b2)Espera-se que ambos os requisitos sejam bidirecionais e tenham o mesmo modelo de consulta.

Onde eu cheguei

Obter todos os A não conectados a B: recebe a2 e a3 conforme o esperado

MATCH path=(a:A)-[r]-(b:B)
WHERE (a)-[r]-(b)
WITH collect(a) as al
MATCH (c:A)
WHERE not c IN al
RETURN c

Desconecte todos os B desconectados, recebo b1 e b2 incorretos e a impressão "al" revelou que a lista está vazia

MATCH path=(b:B)-[r]-(a:A)
WHERE (b)-[r]-(a)
WITH collect(b) as al
MATCH (c:B)
WHERE not c IN al
RETURN c

de alguma forma

WHERE (b)-[r]-(a) **!=** WHERE (a)-[r]-(b)

mesmo que eu tenha a direção bidirecional (não mencionada)

Se eu mudar paraWHERE (a)-[r]-(b) na segunda consulta, ele funciona, mas quero uma consulta bidirecional genérica.

questionAnswers(1)

yourAnswerToTheQuestion