Neo4j vérifier si le nœud existe avant la création?
J'ai le sentiment que je vais sur ce pas. Mais de toute façon.
J'ai une base de données sql qui a essentiellement un dessein denormalised tableau que j'ai construit pour rendre cette tâche plus facile pour moi, donc je ne peux il suffit de saisir des choses d'une table.
Ce que j'ai est un tableau de paires, quelque chose comme ceci:
user_lo | user_hi | something_else | other stuff
1000 | 1234 | 1231251654 | 123
1050 | 1100 | 1564654 | 45648
1080 | 1234 | 456444894648 | 1
Et ainsi de suite.
Donc pour mon graphe neo4j db, je veux que chaque id d'utilisateur comme un nœud, les autres trucs n'est pas trop important, mais seront les choses dans les relations de base.
Je veux seulement un nœud pour chaque utilisateur, donc mon sentiment est que si je fais quelque chose comme ceci:
while (rs.next()) {
node_lo = db.createNode();
node_lo.setProperty("user_id", rs.getInt(1));
node_hi = db.createNode();
node_hi.setProperty("user_id", rs.getInt(2));
}
Que lorsque nous ajoutons le noeud avec user_id 1234 pour la deuxième fois, il suffit de créer un nouveau nœud, mais je ce que je veux, c'est de prendre juste ce nœud au lieu de le créer afin que je puisse l'ajouter à la relation à 1080 dans ce cas.
Alors, quelle est la façon de le faire?
Vous devez vous connecter pour publier un commentaire.
Avez-vous regardé CRÉER UNIQUE?
Si vous ne pouvez pas utiliser Cypher, peut-être que vous pouvez utiliser unique nœuds?
Utiliser un index pour la recherche, et si aucun résultat trouvé pour, créer un nouveau.
Est-ce le type d'opération que vous recherchez?
Vous voudrez probablement utiliser la UniqueNodeFactory fournis par Neo4j.
Normaliser vos tables SQL pour ressembler à des nœuds et des relations. Puis avec monogramme dans votre migration, vous pouvez faire la migration rerunnable par quelque chose comme
pour les nœuds et puisque vous devriez avoir dans votre plusieurs-à-plusieurs table du milieu:
maintenant, vous allez vous retrouver avec pas de doublons et pouvez relancer autant que vous le souhaitez.
utiliser cette fonction:
où:
ID est la clé qui vous voulez vérifier s'il existe déjà
Type: le type du nœud ( sur l'étiquette)
cette fonction permettra de créer le nœud et le retourner, alors vous pouvez ajouter plus de propriétés.
à l'aide de monogramme de requête, vous pouvez créer un unique nœud avec la syntaxe suivante,
lors d'un appel RESTE, on peut faire l'insertion en masse comme
de même pour la création des relations dans un lot de demande, procédez de la manière suivante