我正在使用neo4j空间插件。 我试图做的是以下
1)在某个地理区域内找到人(使用距离和空间插件)
2)返回男性人员节点的数量
我的查询如下:
start n=node:geom('withinDistance:[12.0,13.0, 1000.0]')
match (n{sex:"m"}) return count(n)
现在我想计算总人数(并在同一查询中返回)。我怎样才能做到这一点? 当我将匹配条款应用到我已经找到的开始表达式的节点时,我将女性节点踢出去。有没有办法去节省"初始节点(n)并多次重复使用它们。当然,我可以这样做:
start n=node:geom('withinDistance:[12.0,13.0,1000.0]'),
q=node:geom('withinDistance:[12.0,13.0, 1000.0]')
match (n{sex:"m"}) return count(n), count(q)
我在这里匹配初始节点两次(neo4j可能会查询查询),但我想避免多次匹配相同数量的节点。
所以我真的很'我正在寻找类似的东西:
start n=node:geom('withinDistance:[12.0,13.0, 1000.0]')
return count(n), count (match (n{sex:"m"}))
答案 0 :(得分:2)
使用WITH子句执行此操作。
您的查询应该是:
START q=node:geom('withinDistance:[12.0,13.0, 1000.0]')
WITH q MATCH (n{sex:"m"})
RETURN COUNT(q), COUNT(n);