Neo4j 合并不保存数据
Neo4j merge's not saving data
我有以下使用 PHP & GraphAware 的代码:
$stack = $client->stack();
$stack->push(' MATCH (student:Student{id:123})
MATCH (spring:Term{name:"Spring2017"})
MATCH (class:Class{name:"Cypher101"})
MERGE (student)-[:ENROLLED_IN]->(class)-[:FOR_TERM]->(spring)');
$results = $client->runStack($stack);
$res = $client->run('MATCH (n) RETURN count(n)');
print_r($res->records());
我复制了此处找到的示例代码:https://neo4j.com/developer/kb/understanding-how-merge-works/ 出于某种原因 print_r() returns 以下内容:
Array
(
[0] => GraphAware\Bolt\Record\RecordView Object
(
[keys:protected] => Array
(
[0] => count(n)
)
[values:protected] => Array
(
[0] => 0
)
[keyToIndexMap:GraphAware\Bolt\Record\RecordView:private] => Array
(
[count(n)] => 0
)
)
)
如果我 运行 一个 CREATE 命令,查询工作正常,但由于某些原因上面的代码不会。有人可以告诉我我做错了什么吗?
您的查询似乎是正确的。
检查这些节点是否存在于 Neo4j 数据库中。
- 如果数据库中不存在这些节点,请先创建这些节点,然后
然后 运行 查询。
- 您也可以将
MATCH
替换为 MERGE
,在这种情况下,您不需要
必须单独创建这些节点。
NOTE: Multiple MERGE
in a single query is not recommended, so try to
use the first solution (creating the nodes separately).
我有以下使用 PHP & GraphAware 的代码:
$stack = $client->stack();
$stack->push(' MATCH (student:Student{id:123})
MATCH (spring:Term{name:"Spring2017"})
MATCH (class:Class{name:"Cypher101"})
MERGE (student)-[:ENROLLED_IN]->(class)-[:FOR_TERM]->(spring)');
$results = $client->runStack($stack);
$res = $client->run('MATCH (n) RETURN count(n)');
print_r($res->records());
我复制了此处找到的示例代码:https://neo4j.com/developer/kb/understanding-how-merge-works/ 出于某种原因 print_r() returns 以下内容:
Array
(
[0] => GraphAware\Bolt\Record\RecordView Object
(
[keys:protected] => Array
(
[0] => count(n)
)
[values:protected] => Array
(
[0] => 0
)
[keyToIndexMap:GraphAware\Bolt\Record\RecordView:private] => Array
(
[count(n)] => 0
)
)
)
如果我 运行 一个 CREATE 命令,查询工作正常,但由于某些原因上面的代码不会。有人可以告诉我我做错了什么吗?
您的查询似乎是正确的。
检查这些节点是否存在于 Neo4j 数据库中。
- 如果数据库中不存在这些节点,请先创建这些节点,然后 然后 运行 查询。
- 您也可以将
MATCH
替换为MERGE
,在这种情况下,您不需要
必须单独创建这些节点。
NOTE: Multiple
MERGE
in a single query is not recommended, so try to use the first solution (creating the nodes separately).