Я пытаюсь ознакомиться с графической базой данных Neo4J и ее собственным языком Cypher. Я углубился в это, пытаясь сформировать эту разборчивую онтологию города, в котором я живу.
Основная предпосылка этой темы заключается в том, что я хотел бы связать 100 узлов с «родительской» заметкой.
100 «дочерних» узлов будут номерами улиц, а один узел, к которому они все будут подключены, является узлом самого названия улицы.
Я не опытный программист, довольно далеко от этого, как это, вероятно, очевидно.
Я немного знаю Python, поэтому следующий код - лучшее, что у меня есть, чтобы показать, что именно я хочу:
MATCH (s:Street{name:"Street_in_question"})
MATCH (n) WHERE (n)-[:STREET_NUMBER]->(s)
RETURN
CASE n.name
m = count(n.name)
WHEN m < 20
CREATE (sn:Street_Number{address:m})-[:STREET_NUMBER]->(s)
m + 1
Итак, теперь, когда вы надеетесь понять мою цель, не могли бы вы указать мне правильное направление?
Edit:
Это весь код с попыткой реализации предложенного Мастизой ниже.
CREATE (d:Country{name:"Croatia"})
CREATE (z:County{name:"Grad Zagreb"})-[:COUNTY_OF_COUNTRY]->(d)
CREATE (d)-[:COUNTRY_OF]->(z)
CREATE (g:City{name:"Zagreb"})-[:CITY_OF]->(z)
CREATE (z)-[:COUNTY_OF_CITY]->(g)
CREATE (k:Neighbourhood{name:"Savica"})-[s:NEIGHBOURHOOD_OF_CITY]->(g)
CREATE (g)-[:CITY_OF_NEIGHBOURHOOD]->(k)
CREATE (gruska:Street{name:"Gruška"})-[:STREET_OF_NEIGHBOURHOOD]->(k)
CREATE (k)-[:NEIGHBOURHOOD_OF_STREET]->(gruska)
WITH RANGE(1, 20) as list
UNWIND list as child_number
CREATE(n:Street_Number {number:child_number})
WITH n MATCH (gruska)
CREATE (n)-[:ST_NUMBER]->(gruska)
CREATE (gruska)-[:NUMBER_OF_STREET]->(n)
RETURN n, gruska
Соединяет каждый созданный узел в двух направлениях с всем , даже с самими собой.