我将Neo4j Community 3.4与APOC 3.4.0.1一起使用,并运行以下查询:
MATCH (a:COMPANY)
WITH apoc.coll.randomItems(collect(a), count(a)/100) as companies
UNWIND companies as company
MATCH (b:COMPANY)
WITH collect(b) as companies, company
WITH company, apoc.coll.randomItem(companies) as connectedcompany
CREATE (connectedcompany)-[:IS_SHAREHOLDER_OF]->(company);
该查询旨在创建我数据库中1%的公司,并通过IS_SHAREHOLDER_OF关系将它们随机链接到另一家公司。
查询将显示以下消息
Neo.ClientError.Statement.SyntaxError:类型不匹配:connectedcompany 已经定义为具有冲突类型Any(预期节点)(第7行, 第9栏(偏移量:250))“创建 (connectedcompany)-[:IS_SHAREHOLDER_OF]->(company);“
我在做什么错了?
感谢您的帮助。
答案 0 :(得分:1)
一旦您可以退出3.4.0并使用最新的3.4.x补丁程序版本,就应该能够避免该错误。
对于查询本身,您正在对(b:COMPANY)进行不必要的匹配。您之前与所有公司匹配,因此可以重复使用该列表:
FontAwesome
我考虑改用allCompanies作为替代方法,但是您的randomItems()方法同样适用。