sto cercando di ottenere il tipo di relazione di una semplice query Cypher, come il seguenteCome restituire il tipo di relazione con le query di Cypher di Neo4J?
MATCH (n)-[r]-(m) RETURN n, r, m;
Purtroppo questo restituire un oggetto vuoto per r
. Questo è fastidioso poiché non riesco a distinguere tra i diversi tipi di relazioni. Posso scovare la patch aggiungendo una proprietà come [r:KNOWS {type:'KNOWS'}]
ma mi chiedo se non ci sia un modo diretto per ottenere il tipo di relazione.
Ho persino seguito lo Neo4J tutorial ufficiale (come descritto di seguito), dimostrando il problema.
Grafico Setup:
create (_0 {`age`:55, `happy`:"Yes!", `name`:"A"})
create (_1 {`name`:"B"})
create _0-[:`KNOWS`]->_1
create _0-[:`BLOCKS`]->_1
Query:
MATCH p=(a { name: "A" })-[r]->(b)
RETURN *
JSON risposta del corpo:
{
"results": [
{
"columns": [
"a",
"b",
"p",
"r"
],
"data": [
{
"row": [
{
"name": "A",
"age": 55,
"happy": "Yes!"
},
{
"name": "B"
},
[
{
"name": "A",
"age": 55,
"happy": "Yes!"
},
{},
{
"name": "B"
}
],
{}
]
},
{
"row": [
{
"name": "A",
"age": 55,
"happy": "Yes!"
},
{
"name": "B"
},
[
{
"name": "A",
"age": 55,
"happy": "Yes!"
},
{},
{
"name": "B"
}
],
{}
]
}
]
}
],
"errors": []
}
Come si ca n vedo, ottengo un oggetto vuoto per r
, che rende impossibile distinguere tra le relazioni.
NOTA: Sono in esecuzione Neo4j v.2.2.2
È solo 'TYPE (r)' dove 'r' è l'identificatore della relazione. Dai un'occhiata qui: http://neo4j.com/docs/stable/query-functions-scalar.html#functions-type –
Great! È stato facile. Mi chiedo perché non ho trovato quella pagina. –
Non è esattamente descritto. :) In futuro, mantieni la refcard Cypher a portata di mano in quanto ti mostrerà cose del genere. http://neo4j.com/docs/stable/cypher-refcard/ –