我有一个Neo4J数据库,其中包含大致如下三种图形:
数据具有许多此类小图。我想选择图表,其中猫被更多的人喂养,而不是人类拥有建筑物。每个图count(cat fed by human) > count(human lives in building)
。
要选择具有多个人类的猫,我可以奔跑:
MATCH (cat:CAT)-[fed_by:FED_BY]-(:Human)
WITH cat, count(fed_by) as n_feeders
WHERE n_feeders > 1
MATCH g=(cat)-[:FED_BY]-(:Person)-[:LIVES_AT]-(:Building)
RETURN g
LIMIT 10
但是如何添加(:Cat)-[:FED_BY]-(:Human)
关系的数量必须大于(:Human)-[:LIVES_IN]-(:Building)
关系的数量的条件?
答案 0 :(得分:1)
通过以下查询,您可以找到所需的猫。
您可以在最后返回这些猫的图表。
MATCH (cat:CAT)-[:FED_BY]-(person:Person)-[:LIVES_AT]-(building:Building)
WITH cat, COUNT(DISTINCT person) as n_feeders, COUNT(DISTINCT building) as n_buildings
WHERE n_feeders > n_buildings
RETURN cat