Van egy linkelt listaszerkezetem:
(root:`Desk`)-[:linked_list*0..]->(article:`Article`)-[:linked_list]->...-[:linked_list]->(root:`Desk`)
A lista összes elemének lekérdezéséhez ezt a lekérdezést használom:
MATCH (r)-[:linked_list]->(e)
WHERE ID(r) = {r_id}
AND r <> e
RETURN e
És nagyon jól működik.
De amikor megpróbálok opcionálisan egyeztetni néhány Article
-hoz kapcsolódó relációt, a lekérdezés valóban sok időt vesz igénybe, és sok furcsa adatot kapok.
MATCH (r)-[:linked_list]->(e)
OPTIONAL MATCH (e)-[:author]->(u:`User`)
WHERE ID(r) = {r_id}
AND r <> e
RETURN e, [collect(a)] as authors
Megpróbáltam megjeleníteni az eredményt a http://localhost:7474 címen, és ez az eredmény:
Úgy tűnik, hogy kitölti az r
és e
értékeket az adatbázis összes értékével.
Van ötleted, hogy miért történik ez?