2016-07-13 8 views
0

Ich habe ein Netzwerk von Knoten und Beziehungen in Neo4j, (4039 Knoten und 178000 Beziehungen). Ich war mit den Daten herumgespielt, aber es schien mir, ich keine Knoten durch ihre besondere Eigenschaft zugreifen konnteAbrufen von Knoten in Neo4j mit Cypher, Identifizierung nach Eigenschaften

Wenn ich die Knoten erstellt, die Aussagen erstellen waren so etwas wie dieses,

create(n:PERSON{userid:6, `1`:1, `53`:53, `55`:55, `62`:62, `78`:78, `111`:111, `127`:127, `157`:157, `157`:157}); 

Die Eigenschaften waren für viele Knoten üblich, sagen wir, Eigenschaft 55 mit Wert 55 ist für mindestens 50 Knoten üblich. Aber wenn ich sie zurückzuholen versuchen, mit dieser Chiffre Abfrage

match (n:PERSON {`55`: {55}}) return n; 

Es gibt mir einen Fehler von Erwartete einen Parameter 55 benannt.

+0

Warum würden Sie jemals numerische Werte als Eigenschaftsnamen verwenden? –

+0

Rechts. Eine sehr gute Frage. Der Grund, warum ich numerische Werte verwendet habe, ist, dass es einfacher ist, dynamisch zu programmieren (beim Erstellen von Abfrageanweisungen) und die Eigenschaftswerte einfach mit einem Dokument referenziert werden können, das die numerischen Werte den tatsächlichen Attributen omnipräsent sind. –

+0

Ich weiß, es könnte einen besseren Weg geben, aber ich bin sehr neu in Neo4j und das hat im Moment am meisten Sinn gemacht. –

Antwort

0

Das Problem lag mit den geschweiften Klammern, ich löschte ein Paar geschweifte Klammern und fügte die Eigenschaften in der zweiten Ebene, es funktioniert jetzt. Der Code sieht ungefähr so ​​aus.

match (n:PERSON {`55`: 55}) return n;