在Neo4j中跨唯一节点属性具有最高和最低连接的节点

在Neo4j中跨唯一节点属性具有最高和最低连接的节点,neo4j,cypher,Neo4j,Cypher,在图形数据库中有两种类型的节点。一种类型是Testplan,另一种类型是Tag 我想找到在uniqueTestplan.TP_MNEM(这是Testplan节点的一个属性)中连接最多的Tag节点 更详细地解释一下: 假设该图有5个Testplan节点,其中3个TP_MNEM为“AAA”,1个TP_MNEM为“BBB”,另一个TP_MNEM为“CCC” 我想要连接到大多数类型的TP\MNEM的标记节点。 如果Tag节点1与TP\MNEM有3个连接,而与任何其他TP\MNEM没有连接,则Tag节点1

在图形数据库中有两种类型的节点。一种类型是
Testplan
,另一种类型是
Tag

我想找到在unique
Testplan.TP_MNEM
(这是
Testplan
节点的一个属性)中连接最多的
Tag
节点

更详细地解释一下:

假设该图有5个
Testplan
节点,其中3个
TP_MNEM
为“AAA”,1个
TP_MNEM
为“BBB”,另一个
TP_MNEM
为“CCC”

我想要连接到大多数类型的
TP\MNEM
标记
节点。 如果
Tag
节点1与
TP\MNEM
有3个连接,而与任何其他
TP\MNEM
没有连接,则
Tag
节点1的优先级应低于
Tag
节点2,后者有2个连接,但每个连接都具有唯一的
TP\MNEM
(“AAA”和“CCC”,例如)

类似地,我希望
标记
节点具有最高阶,但仅连接到一种类型的TP\MNEM。在这里,标记节点1将优先于标记节点2

上传CSV的代码共享如下:

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///C:/SRA_clean.csv" AS row

MERGE(testplan:Testplan{
TP_ID:row.TP_ID,
DB_NAME:row.DATABASE_NAME,
TP_MNEM:row.TP_MNEMONIC,
TEST_TYPE:row.TEST_TYPE,
TEST_PLAN_NAME:row.TEST_PLAN_NAME,
CREATION_DATE:row.TS_CREATION_DATE,
MODIFIED_DATE:row.TS_MODIFIED_DATE,
SQL_SERVE_UPD_DATE:row.UPDATE_DT_TM_SQL_SERV,
MYSQL_UPD_DATE:row.UPDATE_DT_TM_MY_SQL
})
FOREACH (tagName IN split(row.Keywords,",")|
MERGE (tag:Tag{name:tagName})
MERGE(testplan)-[:TAGGED]->(tag))

任何帮助都会很好。

我可能简化了事情(和/或误解了您的问题)。。。但是下面的查询不满足您的第一个问题吗

MATCH (tg:Tag)<-[:TAGGED]-(tp:Testplan)
RETURN tg.tagName, count(DISTINCT tp.TP_MNEM) AS count ORDER by count DESC;

MATCH(tg:Tag)我可能简化了事情(和/或误解了你的问题)。。。但是下面的查询不满足您的第一个问题吗

MATCH (tg:Tag)<-[:TAGGED]-(tp:Testplan)
RETURN tg.tagName, count(DISTINCT tp.TP_MNEM) AS count ORDER by count DESC;

MATCH(tg:Tag)请也共享CSV文件。请也共享CSV文件。