多个cypher MATCH查询以获取行计数

时间:2015-12-03 16:22:41

标签: cypher

我正在尝试获取每个节点的行数。 我使用以下密码:

MATCH (p:Product) WHERE p.modifiedDTS > 10 
RETURN {productCount: count(p)};

如何在多个不相关的匹配中使用它?

MATCH (p:Product)
MATCH (i:Item)
WHERE p.modifiedDTS > 10
RETURN {productCount: count(p) ,itemCount: count(i)}

返回0作为结果,但应该为productCount返回1。

找到一个解决方案,但可能有更好的选择。

MATCH(p:Product) where p.modifiedDTS > 10 
Return count(p) as count, "product" as node
UNION ALL
MATCH(i:Item) where i.modifiedDTS > 10
Return count(i) as count, "item" as node

1 个答案:

答案 0 :(得分:1)

OPTIONAL MATCH方式使用where仅适用于上一个可选匹配的地方,并且不会丢弃其他行。

OPTIONAL MATCH (p:Product)
WHERE p.modifiedDTS > 10
OPTIONAL MATCH (i:Item)
WHERE i.modifiedDTS > 10
RETURN {productCount: count(p) ,itemCount: count(i)}