Cypher:查询以检查节点是否是前 10 个结果的一部分

Cypher: Query to check if node is part of top 10 results

我正在尝试执行以下操作的密码查询

  1. 查找美国前 10 大组织(按收入计算)
  2. 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