Domanda

Avevo creato due gruppi di nodi nel grafico utilizzando la seguente query di Cypher

Gruppo Pharma

CREATE ( p1:pharma { name: " Magnesium ", id: " 12 " } ) 
CREATE ( p2:pharma { name: " Hyoscine Butylbromide ", id: " 22 " } ) 
CREATE ( p3:pharma { name: " Propantheline Bromide ", id: " 23 ",  } );
.

Ind Group

CREATE ( i1:ind { id: '1', name: 'Dyspepsia',  pdfk: '12'}) 
CREATE ( i2:ind { id: '5', name: 'Symptomic relief of intestinal disorder', pdfk: '22'}) 
CREATE ( i3:ind { id: '6', name: 'Symptomic relief of disorder', pdfk: '22'}) 
CREATE ( i4:ind { id: '7', name: 'Bowel colic', review: 'False', pdfk: '23'});
.

È proprio come i tabel del database relazionale, ora voglio definire la nave relazionale tra questi due gruppi di nodi ..

Relazione simile= Nodo in Pharma con ID 12 ha un nome di relazione ha_ind con il nodo in ind with ID 1?

da qualche parte come questo

MATCH (a:pharma),(b:ind)
WHERE a.id = '12' AND b.id = '1'
CREATE (a)-[:has_ind]->(b);
.

Ho provato anche questi

MATCH (a:pharmaDrug),(b:indication)
WHERE a.name = 'Magnesium Carbonate' AND b.name = 'Dyspepsia'
CREATE (a)-[:has_indication]->(b);
.

Ma entrambi stanno dando restituiti 0 righe in 530 ms nella console?

Aiutami a trovare la query di Cypher corretta per questo scopo.Grazie in anticipo.

========================================================================

Le mie modifiche sono le seguenti

CREATE ( p1:pharma { name: "Magnesium", id: 12 } ) 
CREATE ( p2:pharma { name: "Hyoscine Butylbromide", id: 22 } ) 
CREATE ( p3:pharma { name: "Propantheline Bromide", id: 23 } );




CREATE ( i1:ind { id: 1, name: 'Dyspepsia',  pdfk: '12'}) 
CREATE ( i2:ind { id: 5, name: 'Symptomic relief of intestinal disorder', pdfk: '22'}) 
CREATE ( i3:ind { id: 6, name: 'Symptomic relief of disorder', pdfk: '22'}) 
CREATE ( i4:ind { id: 7, name: 'Bowel colic', review: 'False', pdfk: '23'});
.

Creare i nodi sotto due etichette

MATCH (a:pharma),(b:ind)
WHERE a.id = ' 12 ' AND b.id = ' 1 '
CREATE (a)-[:has_indication]->(b);
.

Dare zero righe interessate senza output?

È stato utile?

Soluzione

È a causa del modo in cui hai creato i tuoi articoli, se guardi il tuo codice 'Pharma' hai:

CREATE ( p1:pharma { name: " Magnesium ", id: " 12 " } )
.

Per abbinare questo è necessario fare:

MATCH (a:pharma) 
WHERE a.id = ' 12 '
RETURN a
.

Ho aggiunto spazi extra intorno al '12' per farlo corrispondere. Quindi la tua richiesta non avrebbe letto come:

MATCH (a:pharma),(b:ind)
WHERE a.id = ' 12 ' AND b.id = '1'
CREATE (a)-[:has_indication]->(b)
.

Ora, questo lo farà funzionare - ma potrebbe valere la pena di cambiare il tuo modello un po ', se il id è sempre un intero, cambierei il tuo creativo per essere:

CREATE ( p1:pharma { name: "Magnesium", id: 12 } ) 
CREATE ( p2:pharma { name: "Hyoscine Butylbromide", id: 22 } ) 
CREATE ( p3:pharma { name: "Propantheline Bromide", id: 23 } );
.

ed essere super Attento con il tuo utilizzo del carattere " (o '), nel tuo originale crea, stai aggiungendo anche spazi aggiuntivi per i nomi (ed è per questo che la tua seconda query Lavoro)

Modifica

OK, questo è un insieme di dati completamente funzionante, ho modificato entrambe le tue dichiarazioni di creazione di ottenere questo:

CREATE ( p1:pharma { name: 'Magnesium', id: 12 } ) 
CREATE ( p2:pharma { name: 'Hyoscine Butylbromide', id: 22 } ) 
CREATE ( p3:pharma { name: 'Propantheline Bromide', id: 23} )
CREATE ( i1:ind { id: 1, name: 'Dyspepsia',  pdfk: 12}) 
CREATE ( i2:ind { id: 5, name: 'Symptomic relief of intestinal disorder', pdfk: 22}) 
CREATE ( i3:ind { id: 6, name: 'Symptomic relief of disorder', pdfk: 22}) 
CREATE ( i4:ind { id: 7, name: 'Bowel colic', review: 'False', pdfk: 23})
.

Fondamentalmente ho rimosso i caratteri ' e gli interi usati per ID (e PDFK). Il MATCH per questo è:

MATCH (a:pharma),(b:ind)
WHERE a.id = 12 AND b.id = 1
CREATE (a)-[:has_ind]->(b)
.

E per verificarlo funziona (a parte il messaggio che rimetti):

MATCH (p:pharma),(i:ind) RETURN p,i
.

Vedrai uno è collegato a un altro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top