Как быстро создать узлы в neo4j без предоставления идентификаторов узлов? - PullRequest
0 голосов
/ 18 мая 2019

Neo4j не поддерживает идентификатор узла с таким же именем, например

    CREATE (p:Person { id:100001, firstname: 'John', surname: 'Wood', age: 25 })
    CREATE (p:Person { id:100002, firstname: 'Jack', surname: 'Wood', age: 35 })
    CREATE (p:Person { id:100003, firstname: 'John', surname: 'Wood', age: 45 })
    CREATE (p:Person { id:100004, firstname: 'Jack', surname: 'Wood', age: 55 })

Должны быть предоставлены разные идентификаторы, такие как:

    CREATE (p100001:Person { id:100001, firstname: 'John', surname: 'Wood', age: 25 })
    CREATE (p100002:Person { id:100002, firstname: 'Jack', surname: 'Wood', age: 35 })
    CREATE (p100003:Person { id:100003, firstname: 'John', surname: 'Wood', age: 45 })
    CREATE (p100004:Person { id:100004, firstname: 'Jack', surname: 'Wood', age: 55 })

Как быстро создать узлы без предоставления идентификаторов?

Большое спасибо.

Ответы [ 2 ]

1 голос
/ 19 мая 2019

Узлы автоматически инициализируются внутренним сгенерированным свойством id в Neo4J, которое доступно после создания с помощью вызова id (узла).

Несмотря на то, что технически вы можете избежать установки собственного идентификатора, как описано выше, мой опыт показывает, что лучше переименовать вашу собственность во что-то другое, например, personId.

На ваш вопрос, вы можете использовать foreach для перебора исходных данных и создания узлов без необходимости объявлять уникальные переменные (для краткости только два узла созданы в этом примере):

foreach (person in [{firstName:'John', surname:'Wood', age:25}, {firstName:'Jack', surname:'Wood', age:35}] |
create (p:Person{name:person.name, age:person.age})
)
1 голос
/ 18 мая 2019

Вы можете попробовать:

CREATE (:Person { id:100001, firstname: 'John', surname: 'Wood', age: 25 }),
    (:Person { id:100002, firstname: 'Jack', surname: 'Wood', age: 35 }), 
    (:Person { id:100003, firstname: 'John', surname: 'Wood', age: 45 }), 
    (:Person { id:100004, firstname: 'Jack', surname: 'Wood', age: 55 })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...