Diciamo che abbiamo n nodi con etichetta : Test e una proprietà univoca chiamata tipo.Creazione di strutture univoche in Neo4j con i nodi che fanno parte di un'altra struttura
UNWIND[{ type:"a" }, { type:"b" }, { type:"c" }, { type:"d" }] AS x
MERGE (t:Test { type: x.type })
RETURN t
che assomiglia a questo
Ora introduciamo un nodo di un'etichetta : Collection. Lo scopo se questo nodo deve avere un modello di relazione univoco con i nodi : Test.
MATCH (a:Test { type:"a" }),(b:Test { type:"b" })
CREATE UNIQUE (x:Collection)-[:HAS]->(a),(x:Collection)-[:HAS]->(b)
Return *
Il problema che faccia parte si verifica quando si tenta di fare un'altra struttura unica, come il precedente, ma con alcuni nodi in comune.
MATCH (a:Test { type:"a" })
CREATE UNIQUE (x:Collection)-[:HAS]->(a)
RETURN *
Il risultato atteso è che un altro nodo di etichetta : Collezione viene creato e collegato a : test{type: "a"} ma il risultato effettivo è che corrisponde alla struttura dati precedenti e restituisce quello invece di crearne uno nuovo.
Il risultato atteso dovrebbe avere 2 : Collezione nodi, un obiettivo legato alla tipo: "a", l'altro legato alla tipo: "a" e tipo: "b ".
Qualsiasi tipo di ingresso dell'ingresso sarà molto apprezzato: D
Una potenziale soluzione rapida e sporca consiste nell'avere una proprietà univoca per **: Raccolta ** fatta dal **: Test ** ** tipo ** s ordinato alfanumerico. Qualcosa come **: Collection {type: "ab"} ** e **: Collection {type: "a"} ** e hanno la query visualizzata in quel modo prima di inviarla al parser Cypher –