Wie die Rückkehr der Beziehungstyp mit Neo4J Cypher-Abfragen?

Ich versuche, die Art der Beziehung eine sehr einfache Cypher-Abfrage, wie im folgenden

MATCH (n)-[r]-(m) RETURN n, r, m;

Leider ist diese Rückkehr ein leeres Objekt für r. Dies ist lästig, da kann ich nicht unterscheiden zwischen den verschiedenen Arten von Beziehungen. Ich kann monkey patch dies durch hinzufügen einer Eigenschaft wie [r:KNOWS {type:'KNOWS'}] aber ich Frage mich, ob es nicht einen direkten Weg, um die Art der Beziehung.

Ich selbst folgte die offizielle Neo4J-tutorial (wie unten beschrieben), zeigt das problem.

Graph-Setup:

create (_0 {`age`:55, `happy`:"Yes!", `name`:"A"})
create (_1 {`name`:"B"})
create _0-[:`KNOWS`]->_1
create _0-[:`BLOCKS`]->_1

Abfrage:

MATCH p=(a { name: "A" })-[r]->(b)
RETURN *

JSON-ANTWORT KÖRPER:

{
    "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": []
}

Wie Sie sehen können, bekomme ich ein leeres Objekt für r, was es unmöglich macht zu unterscheiden zwischen den Beziehungen.

HINWEIS: ich bin mit Neo4J v. 2.2.2

  • Es ist nur TYPE(r) wo r ist die Beziehung der Bezeichner. Check it out hier: neo4j.com/docs/stable/...
  • Super!!! Das war einfach. Ich Frage mich, warum ich noch nicht gefunden, die Seite.
  • Es ist nicht genau zu sehen. 🙂 In die Zukunft, halten die Cypher refcard praktisch, weil es wird Ihnen zeigen, Dinge wie, dass. neo4j.com/docs/stable/cypher-refcard
  • Ich habe das schreiben von cypher für ein paar Jahre jetzt, und ich habe immer refcard und die cypher Spickzettel in der Nähe.
  • Danke, ich denke mal du meinst diese PDF-Datei assets.neo4j.org/download/Neo4j_CheatSheet_v3.pdf
  • Vielen Dank für den ausgezeichneten Tipp!

InformationsquelleAutor F Lekschas | 2015-07-17
Schreibe einen Kommentar