#graph #neo4j
#График #neo4j
Вопрос:
У меня есть образцы данных, и я хочу построить график с помощью neo4j.
shop memberID age type number
Gyms 1 13 B 0-01
Gyms 1 14 A 0-02
Gyms 1 14 A 0-03
Gyms 1 20 B 0-04
Gyms 2 16 B 0-01
Gyms 2 16 B 0-02
Gyms 2 38 A 0-03
Gyms 2 38 A 0-04
Gyms 3 15 A 0-01
Я ожидаю получить такую же картину.
Фактически, я строю график и получаю эту картинку.
Не могли бы вы рассказать мне, как справиться с моим ожидаемым графиком?
Вот код neo4j для запуска графика
LOAD CSV WITH HEADERS FROM 'file:///test.csv' AS row
MERGE (shop:shop {shop: row.shop})
MERGE (memberID:memberID {memberID: toInteger(row.memberID)})
MERGE (age:page {age: toInteger(row.age)})
MERGE (type:type {type: row.type})
MERGE (number:number {number: row.number})
MERGE path1 = (memberID)<-[:is_member]-(shop)
MERGE path2 = (age)<-[:is_age]-(memberID)
MERGE path3 = (type)<-[:is_type]-(age)
MERGE path4 = (number)<-[:is_number]-(type)
RETURN path1, path2, path3, path4
Комментарии:
1. Вы не объяснили свой вариант использования, но вам может потребоваться пересмотреть свою модель данных. Вот лишь некоторые из потенциальных вопросов / проблем. Необходимо ли, чтобы каждое свойство находилось в своем собственном узле? Почему у участника может быть несколько возрастов?
type
Действительно ли a относится кage
— или он должен принадлежать члену?
Ответ №1:
Ну, кажется, вам не следует объединять каждый узел отдельно, например, вы хотите, чтобы на вашем графике было больше одного узла для возраста 15 лет. Вы можете изменить свой запрос следующим образом, чтобы объединить каждый последующий узел по отношению к каждому родительскому узлу.
LOAD CSV WITH HEADERS FROM 'file:///test.csv' AS row
MERGE (shop:shop {shop: row.shop})
MERGE (shop)-[:is_member]->(memberID:memberID {memberID: toInteger(row.memberID)})
MERGE (memberID)-[:is_age]->(age:page {age: toInteger(row.age)})
MERGE (age)-[:is_type]->(type:type {type: row.type})
MERGE (type)-[:is_number]->(number:number {number: row.number})
RETURN *
Комментарии:
1. У меня также есть другой вопрос, как обращаться с нулевым значением, если какая-то строка в числовом столбце равна нулю, она показывает «Невозможно объединить узел, используя значение свойства null для number»