J'essaie de créer une arborescence de dates dans ma base de données Neo4j qui fonctionnera avec le module de calendrier de la bibliothèque py2neo de Nigel Small.Création d'un arbre de dates Neo4j qui fonctionnera avec py2neo
J'ai utilisé le code de démarrage de Mark Needham d'ici (http://java.dzone.com/articles/neo4j-cypher-creating-time), mais cela ne connecte pas tous les nœuds d'année à un nœud de calendrier principal, qui est requis pour la bibliothèque py2neo. (docs ici: http://book.py2neo.org/en/latest/calendar/)
J'ai modifié le code de Mark pour essayer de créer un nœud maître pour connecter tous les ans comme ceci:
CREATE (x:Calendar {name:'master'})
WITH range(2005, 2014) AS years, range(1,12) as months
FOREACH(year IN years |
CREATE (y:Year {year: year})
MERGE (x)-[:YEAR]->(y)
FOREACH(month IN months |
CREATE (m:Month {month: month})
MERGE (y)-[:MONTH]->(m)
FOREACH(day IN (CASE
WHEN month IN [1,3,5,7,8,10,12] THEN range(1,31)
WHEN month = 2 THEN
CASE
WHEN year % 4 <> 0 THEN range(1,28)
WHEN year % 100 <> 0 THEN range(1,29)
WHEN year % 400 <> 0 THEN range(1,29)
ELSE range(1,28)
END
ELSE range(1,30)
END) |
CREATE (d:Day {day: day})
MERGE (m)-[:DAY]->(d))))
Qu'est-ce qui se passe est qu'il ya un nœud (avec l'étiquette de calendrier) qui est créé mais aucune relation n'est associée, alors qu'un nœud (sans label) est créé et attaché à chaque nœud Year.
Je sais que c'est probablement une solution vraiment facile, mais je suis nouveau à CYPHER et j'ai vraiment du mal à comprendre cela.
Il m'a fallu quelques minutes pour voir votre changement de ligne 2; Je comprends maintenant. Merci! –