我执行使用curl下面的代码(一切都在同一行,当我真正运行它。我打破它在这里,使其更易于阅读)。节点创建成功,但关系不是。它不识别节点之间的关系。使用curl发布密码时,为什么不建立关系?
curl --user neo4j:mypassword -i -H accept:application/json -H
content-type:application/json -XPOST http://localhost:7474/db/data/transaction/commit -d
'{"statements":[
{"statement":"CREATE (keanu:Actor { name : '\''Keanu Reeves'\''}) return id(keanu)"},
{"statement":"CREATE (chad:Director { name : '\''Chad Stahelski'\''}) return id(chad)"},
{"statement":"CREATE (david:Director { name : '\''David Leitch'\''}) return id(david)"},
{"statement":"CREATE (william:Actor { name : '\''William Dafoe'\''}) return id(william)"},
{"statement":"CREATE (michael:Actor { name : '\''Michael Nyquist'\''}) return id(michael)"},
{"statement":"CREATE (movienew:Movie { title : '\''John Wick'\''}) return id(movienew)"},
{"statement":"CREATE (keanu)-[:ACTS_IN ]->(movienew)"},
{"statement":"CREATE (chad)-[:Directed_IN ]->(movienew)"},
{"statement":"CREATE (david)-[:Directed_IN ]->(movienew)"},
{"statement":"CREATE (william)-[:ACTS_IN ]->(movienew)"},
{"statement":"CREATE (michael)-[:ACTS_IN ]->(movienew)"}
]}'
它不承认的关系之间的哪些节点。
应该如何解决呢?
更新:我现在已经改变了我的代码到这个
curl --user neo4j:mypassword -i -H accept:application/json -H content-type:application/json -XPOST http://localhost:7474/db/data/transaction/commit -d '{"statements":[{"statement":"CREATE (matrix1:Movie { title : '\''The Matrix'\'', year : '\''1999-03-31'\'' }) return id(matrix1)","CREATE (matrix2:Movie { title : '\''The Matrix Reloaded'\'', year : '\''2003-05-07'\'' }) return id(matrix2)","CREATE (matrix3:Movie { title : '\''The Matrix Revolutions'\'', year : '\''2003-10-27'\'' }) return id(matrix3)","CREATE (keanu:Actor { name : '\''Keanu Reeves'\''}) return id(keanu)","CREATE (laurence:Actor { name : '\''Laurence Fishburne'\''})","CREATE (carrieanne:Actor { name : '\''Carrie-Anne Moss'\''})","CREATE (keanu)-[:ACTS_IN { role : '\''Neo'\'' }]->(matrix1)","CREATE (keanu)-[:ACTS_IN { role : '\''Neo'\'' }]->(matrix2)","CREATE (keanu)-[:ACTS_IN { role : '\''Neo'\'' }]->(matrix3)","CREATE (laurence)-[:ACTS_IN { role : '\''Morpheus'\'' }]->(matrix1)","CREATE (laurence)-[:ACTS_IN { role : '\''Morpheus'\'' }]->(matrix2)","CREATE (laurence)-[:ACTS_IN { role : '\''Morpheus'\'' }]->(matrix3)","CREATE (carrieanne)-[:ACTS_IN { role : '\''Trinity'\'' }]->(matrix1)","CREATE (carrieanne)-[:ACTS_IN { role : '\''Trinity'\'' }]->(matrix2)","CREATE (carrieanne)-[:ACTS_IN { role : '\''Trinity'\'' }]->(matrix3)"}]}'
,但后来我得到错误 '无法反序列化要求:意外的字符(', '(代码44))'
更新:基于公认的答案,我复制的确切格式,并将其应用到另一个程序,但THI时候我接收到下方的错误:
{ “结果”:[], “错误”:[{ “代码”: “Neo.ClientError.Request.InvalidFormat”, “消息”:“无法反序列化请求:意外字符( ''(代码46)):期待双引号在[来源开始字段名\ N:HttpInputOverHTTP @ 442ac29b;线:1,列:3]“}]}
我的代码是:
curl --user neo4j:mypassword -i -H accept:application/json \
-H content-type:application/json \
-XPOST http://localhost:7474/db/data/transaction/commit \
-d @- << EOF
{
"statements":
[
{
"statement":
"CREATE (matrix1:Movie { title : 'The Matrix', year : '1999-03-31'})
CREATE (matrix2:Movie { title : 'The Matrix Reloaded', year : '2003-05-07'})
CREATE (matrix3:Movie { title : 'The Matrix Revolutions', year : '2003-10-27'})
CREATE (keanu:Actor { name : 'Keanu Reeves'})
CREATE (laurence:Actor { name : 'Laurence Fishburne'})
CREATE (carrieanne:Actor { name : 'Carrie-Anne Moss'})
CREATE (keanu)-[:ACTS_IN { role : 'Neo' }]->(matrix1)
CREATE (keanu)-[:ACTS_IN { role : 'Neo' }]->(matrix2)
CREATE (keanu)-[:ACTS_IN { role : 'Neo' }]->(matrix3)
CREATE (laurence)-[:ACTS_IN { role : 'Morpheus' }]->(matrix1)
CREATE (laurence)-[:ACTS_IN { role : 'Morpheus' }]->(matrix2)
CREATE (laurence)-[:ACTS_IN { role : 'Morpheus' }]->(matrix3)
CREATE (carrieanne)-[:ACTS_IN { role : 'Trinity' }]->(matrix1)
CREATE (carrieanne)-[:ACTS_IN { role : 'Trinity' }]->(matrix2)
CREATE (carrieanne)-[:ACTS_IN { role : 'Trinity' }]->(matrix3)
RETURN *"
}
]
}
EOF
有人能告诉我为什么这是不正确的
非常感谢!这很漂亮。这个EOF代表什么? – vivi11130704
它只是一个标签,以便shell知道它何时读取输入的结尾。 EOF只是传统*文件结尾*。 –
我明白了。我用另一个问题的确切格式,但得到一个错误消息(代码显示在我上面的帖子)。你能告诉我为什么这是不正确的吗? – vivi11130704