Cypher:查询以检查节点是否是前 10 个结果的一部分
Cypher: Query to check if node is part of top 10 results
我正在尝试执行以下操作的密码查询
- 查找美国前 10 大组织(按收入计算)
- Return "True" 如果某个组织进入前 10 名,如果不是 return "False"
我试图提取前 10 名组织列表的代码如下所示:
MATCH (org)
WHERE org.revenueCurrency = 'USD'
WITH org as topCompany
ORDER by topCompany.revenue desc LIMIT 10
RETURN topCompany
但是不确定如果一家公司在前 10 名中,如何 return 判断真假
这是一种方式:
MATCH (org)
WHERE org.revenueCurrency = 'USD'
WITH org
ORDER by org.revenue DESC
WITH COLLECT(org) AS orgs
UNWIND [i IN RANGE(0, SIZE(orgs)-1) | {org: orgs[i], top10: i < 10}] AS result
RETURN result
每个 result
行的 top10
属性 将是一个布尔值。
[更新]
如果您希望每个结果行都是 "flat" 而不是地图,请使用此更改后的 RETURN
子句:
RETURN result.org AS org, result.top10 AS top10
我正在尝试执行以下操作的密码查询
- 查找美国前 10 大组织(按收入计算)
- Return "True" 如果某个组织进入前 10 名,如果不是 return "False"
我试图提取前 10 名组织列表的代码如下所示:
MATCH (org)
WHERE org.revenueCurrency = 'USD'
WITH org as topCompany
ORDER by topCompany.revenue desc LIMIT 10
RETURN topCompany
但是不确定如果一家公司在前 10 名中,如何 return 判断真假
这是一种方式:
MATCH (org)
WHERE org.revenueCurrency = 'USD'
WITH org
ORDER by org.revenue DESC
WITH COLLECT(org) AS orgs
UNWIND [i IN RANGE(0, SIZE(orgs)-1) | {org: orgs[i], top10: i < 10}] AS result
RETURN result
每个 result
行的 top10
属性 将是一个布尔值。
[更新]
如果您希望每个结果行都是 "flat" 而不是地图,请使用此更改后的 RETURN
子句:
RETURN result.org AS org, result.top10 AS top10