如何计算特定条件下的密码标签?

时间:2019-04-05 07:52:06

标签: neo4j cypher

我有一个图形数据库,其中包含有关不同公司及其子公司的信息。现在,我的任务是展示公司的结构。我用d3和垂直树实现了这一点。

但是此外,我还必须编写有关当前显示的公司的摘要统计信息。可以从一个下拉列表中选择公司,该列表通过AJAX调用动态获取此数据。

我必须在同一HTML中写一个简短的摘要,如:

公司A的子公司总数:300 在企业天堂的公司:45% 避税天堂的公司5%

我的数据库包含两个节点:Company和Country,并且国家/地区具有类似于CH和TH的标签。

CREATE (:TH:Country{name:'Nauru', capital:'Yaren', lng:166.920867,lat:-0.5477})
WITH 1 as dummy MATCH (a:Company), (b:Country) WHERE a.name=‘CompanyA ' AND b.name='Netherlands' CREATE (a)-[:IS_REGISTERED]->(b)

那么我如何才能找到在公司和避税天堂注册的CompanyA子公司的数量?以及如何将此信息进一步传递给html

我找到了不同的密码查询来查询所有标签以及apocalyptic.stats,但这不允许我筛选母公司。感谢您的帮助。

enter image description here

1 个答案:

答案 0 :(得分:0)

该密码很好,因为您几乎用自然语言编写了一个查询(以下查询可能不正确-未检查,但思路很明确):

MATCH (motherCompany:Company {name: 'CompanyA'})-[:HAS_SUBSIDIARY]->(childCompany:Company) 
WITH motherCompany, 
     childCompany
MATCH (childCompany)-[:IS_REGISTERED]->(country:Country)
WITH motherCompany, 
     collect(labels(country)) AS countriesLabels
WITH motherCompany, 
     countriesLabels,
     size([countryLabels IN countriesLabels WHERE 'TH' IN countryLabels ]) AS inTaxHeaven
RETURN motherCompany, 
       size(countriesLabels) AS total,
       inTaxHeaven,
       size(countriesLabels) - inTaxHeaven AS inCorporateHeaven