我有以下代码:
var q = new CypherFluentQuery(client) as ICypherFluentQuery;
q = q.OptionalMatch("(n:subject)-[r4:SCP_IN_SC]-(sc:Spec)");
q = q.OptionalMatch("(sc)-[r5:SCP_IN_SC]-(p)");
q = q.OptionalMatch("(p)-[r6:SCP_IN_SCT]-(t:Tag)");
q = q.OptionalMatch("(t)-[r7:SCP_IN_SCT]-(n)");
q = q.OptionalMatch("(p)-[r8:SCP_IN_SCC]-(c:Catalog)");
如何查找查询结果中匹配的可选匹配项?
任何
匹配的OPTIONAL MATCH
(显然不限于 1)将导致结果中出现非空元素,即 如果第一个节点不匹配,则sc
为 null,如果匹配,则为实际节点。
作为侧节点,希望您对节点有更多的约束(额外的标签、WHERE
子句等),因为否则看起来p
和n
实际上是同一个节点。