我们有一个节点Reference
,它的属性为rating
。假设我们在数据库中有2个引用,即2个“正”和1个“负”。
密码查询以统计阳性引用:
MATCH (positive:Reference{rating:'Positive'}) return count(positive)
返回2,确定
密码查询以计数阴性引用:
MATCH (negative:Reference{rating:'Negative'}) return count(negative)
返回1,确定
密码查询可同时计算正向引用和负向引用。基本上,将前两个查询合并为一个查询。
MATCH (positive:Reference{rating:'Positive'})
MATCH (negative:Reference{rating:'Negative'})
return count(positive) as positive, count(negative) as negative
我希望返回的值将为正2和负1。但是,两个结果均为2。
我想念什么吗?可能是我错了,但是我发誓这在旧版本的neo4j中有效(现在我正在使用3.3.2)。
预先感谢您的帮助。
答案 0 :(得分:2)
请记住,当您像这样进行背对背匹配时,当您查找的事物之间没有任何关系时,您将得到positive
的所有元素与{{1的所有元素的叉积。 }}。因此,在这种情况下,由于有2个肯定的响应和1个否定的响应,所以总共有2 x 1 = 2行(每行将列出一个负节点)。您可以将返回值更改为negative
,并在表格结果视图中查看它。
要获得所需的结果,可以获取不同节点的数量:
RETURN positive, negative
或者使用更好的比赛结束后立即收集的方法,最终应该减少工作量:
RETURN count(DISTINCT positive) as positive, count(DISTINCT negative) as negative