Слияние Neo4j не сохраняет данные - PullRequest
1 голос
/ 06 июня 2019

У меня есть следующий код с использованием 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 () возвращает следующее:

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, запрос работает нормально, но по какой-то причине приведенный выше код не будет. Может кто-нибудь посоветовать мне, что я делаю не так?

1 Ответ

2 голосов
/ 06 июня 2019

Ваш запрос кажется правильным.

Проверьте, существуют ли эти узлы в базе данных Neo4j.

  • Если их нетв базе данных сначала создайте эти узлы, а затем выполните запрос.
  • Вы также можете заменить MATCH на MERGE, в этом случае вам не нужно
    создавать эти узлы отдельно.

ПРИМЕЧАНИЕ. Несколько MERGE в одном запросе не рекомендуется, поэтому попробуйте использовать первое решение (создавая узлы отдельно).

...