在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
我想找到在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的优先级应低于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文件。