Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 合并和匹配之间需要使用_Neo4j - Fatal编程技术网

Neo4j 合并和匹配之间需要使用

Neo4j 合并和匹配之间需要使用,neo4j,Neo4j,我正在尝试设置一个图形数据库,我有两个csv文件。我已经成功地安装了一个csv,第一个运行良好 第一个CSV: LOAD CSV WITH HEADERS FROM "file:///C:/Users/rraina/Desktop/acc.csv" AS csvLine MERGE (providerName:ProviderName { name: csvLine.providerName }) MERGE (container:Container { name: csvLine.CONTAI

我正在尝试设置一个图形数据库,我有两个csv文件。我已经成功地安装了一个csv,第一个运行良好

第一个CSV:

LOAD CSV WITH HEADERS FROM "file:///C:/Users/rraina/Desktop/acc.csv" AS csvLine
MERGE (providerName:ProviderName { name: csvLine.providerName })
MERGE (container:Container { name: csvLine.CONTAINER })
MERGE (asset:Asset { name: csvLine.isAsset })
CREATE (account:Account { accountName: csvLine.accountName, id: csvLine.id})
CREATE (account)-[:ACCOUNTS_IN]->(providerName)
CREATE (account)-[:ACCOUNT_TYPE]->(container)
CREATE (account)-[:IS_ASSET]->(asset)
CSV如下所示:

CONTAINER,accountName,accountStatus,accountNumber,isAsset,balance,id,lastUpdated,providerId,providerName,refreshinfo,isManual
reward,RAHUL RAINA,ACTIVE,xxxx0363,TRUE,3334,16294736,1433967380,9863,HSBC Bank Personal Banking,0|OK|1433967380|1433967380,FALSE
bank,SAVINGS ACCOUNT - RES,ACTIVE,xxxx5006,TRUE,6048.07,16294732,1433967401,9863,HSBC Bank Personal Banking,0|OK|1433967401|1433967401,FALSE
creditCard,VISA GOLD,ACTIVE,xxxx0363,FALSE,4885.56,16294492,1433967428,9863,HSBC Bank Personal Banking,0|OK|1433967428|1433967428,FALSE
bank,SBCHQ-GEN-PUB-IND-NONRURAL-INR,ACTIVE,xxxx6404,TRUE,24572.98,16294488,1433966054,9421,State Bank of India,0|OK|1433966054|1433966054,FALSE
CONTAINER,id,amount,baseType,category,description,originalDescription,isManual,date,transactionDate,merchantName,status,accountId
bank,133817384,1400,DEBIT,ATM/Cash Withdrawals,ATM07JUN15 NFS 11:38:44A96103218ATM,ATM07JUN15 NFS 11:38:44A96103218ATM,FALSE,6/8/2015,6/8/2015,Cash Withdrawal,POSTED,16294732
bank,133815940,224,DEBIT,Transfers,TO TRANSFER INB Tinyowl Technology Privat,TO TRANSFER INB Tinyowl Technology Privat,FALSE,6/8/2015,6/8/2015,Transfer,POSTED,16294488
通过上面的查询,我已经能够绘制出我需要的图表

但是,当我导入第二个csv并尝试添加从trans.csv到acc.csv的关系时

trans.csv如下所示:

CONTAINER,accountName,accountStatus,accountNumber,isAsset,balance,id,lastUpdated,providerId,providerName,refreshinfo,isManual
reward,RAHUL RAINA,ACTIVE,xxxx0363,TRUE,3334,16294736,1433967380,9863,HSBC Bank Personal Banking,0|OK|1433967380|1433967380,FALSE
bank,SAVINGS ACCOUNT - RES,ACTIVE,xxxx5006,TRUE,6048.07,16294732,1433967401,9863,HSBC Bank Personal Banking,0|OK|1433967401|1433967401,FALSE
creditCard,VISA GOLD,ACTIVE,xxxx0363,FALSE,4885.56,16294492,1433967428,9863,HSBC Bank Personal Banking,0|OK|1433967428|1433967428,FALSE
bank,SBCHQ-GEN-PUB-IND-NONRURAL-INR,ACTIVE,xxxx6404,TRUE,24572.98,16294488,1433966054,9421,State Bank of India,0|OK|1433966054|1433966054,FALSE
CONTAINER,id,amount,baseType,category,description,originalDescription,isManual,date,transactionDate,merchantName,status,accountId
bank,133817384,1400,DEBIT,ATM/Cash Withdrawals,ATM07JUN15 NFS 11:38:44A96103218ATM,ATM07JUN15 NFS 11:38:44A96103218ATM,FALSE,6/8/2015,6/8/2015,Cash Withdrawal,POSTED,16294732
bank,133815940,224,DEBIT,Transfers,TO TRANSFER INB Tinyowl Technology Privat,TO TRANSFER INB Tinyowl Technology Privat,FALSE,6/8/2015,6/8/2015,Transfer,POSTED,16294488
用于导入第二个csv并建立关系的查询:

LOAD CSV WITH HEADERS FROM "file:///C:/Users/rraina/Desktop/trans.csv" AS csvLine
MERGE (baseType:BaseType { name: csvLine.baseType })
MERGE (category:Category { name: csvLine.category })
MERGE (merchantName:MerchantName { name: csvLine.merchantName })
MATCH (account:Account { id: csvLine.accountId }),(transaction:Transaction { id: csvLine.accountId })
CREATE (transaction:Transaction { description: csvLine.description, postedDate: csvLine.date,transactionDate: csvLine.transactionDate ,id: csvLine.id })
CREATE (transaction)-[:CATEGORY_IN]->(category)
CREATE (transaction)-[:TRANSACTED_AT]->(merchantName)
CREATE (transaction)-[:BASETYPE_OF]->(baseType)
我得到这个错误:

WITH is required between MERGE and MATCH (line 5, column 1 (offset: 253))
"MATCH (account:Account { id: csvLine.accountId }),(transaction:Transaction { id: csvLine.accountId })"

如果acc.csv的:account.id
等于
trans.csv的:transaction.id

为什么不给它所要求的带有语句的

请注意:

WITH baseType, category, merchantName, csvLine

在您上次的
合并
和您的
匹配

之间,这解决了这个错误,但奇怪的是现在它说:
csvLine未定义(第7行第30列(偏移量:346))“匹配(帐户:account{id:csvLine.accountId}),(事务:事务{id:csvLine.accountId}”
我能够从第一个文件导入csv,但我错过了
csvLine
变量。我更新了我的答案,用
语句将其添加到
。使用新的
with
语句重试一次。是的,这完成了任务,但是为什么它会说
transaction已经声明(第8行第9列(偏移量:407))“创建(transaction:transaction{description:row.description,postedate:row.date,transactionDate:row.transactionDate,id:row.id}”
我很抱歉打扰您,因为您使用的名称是
交易
两次。在
MATCH
语句的后半部分绑定一次,然后在第一个
CREATE
语句中再次绑定。不能有两个名为
transaction
的节点。您需要为其中一个选择不同的名称。