2015-04-19 4 views
5

Ich habe eine Anforderung, in der ein Eigenschaftenschlüssel mehrere Werte enthalten kann. Wie speichere ich sie als Eigentum in Neo4j?Was ist der beste Weg, Array von Zeichenfolgen als Knoteneigenschaft in Neo4j zu speichern

Ex: Person Knoten hat Eigenschaften wie: 'Name', 'Alter' und 'Interessen' Das kann 'Interessen' Eigenschaft kann mehr als ein Zeichenketten enthalten (Array von Strings).

Was ist der beste Ansatz, um "Interessen" zu speichern? Ich denke, ich möchte dies nicht durch Hinzufügen weiterer Knoten komplizieren. Stattdessen möchte ich alle Eigenschaften in demselben Personenknoten behalten.

Auch wird es gut sein, wenn ich einen Personenknoten nach einem beliebigen Element in der Eigenschaft 'interests' suchen kann.

Speichern als eine Zeichenfolge getrennt durch einige spezielle Zeichen? Speichern als Array von Zeichenfolgen für eine Eigenschaft? Wenn ja, wie mache ich das?

Dank

+1

Haben Sie darüber nachgedacht, das Handbuch zu lesen? Hier ist der Abschnitt über Cypher-Sammlungen - http://neo4j.com/docs/stable/syntax-collections.html –

+0

Danke, sieht aus wie ich kann JSON Liste der Werte kodieren und als ein Wert einer Eigenschaft speichern. Ist es möglich, nach einem Wert in der Eigenschaft zu suchen (oder zu vergleichen)? –

+1

Sie könnten json sicher als String speichern, aber dann könnten Sie die Datenbank bei der Suche nicht wirklich ausnutzen. Wie @Brian sagt, wenn Sie nach den "Interessen" suchen, werden Sie wahrscheinlich am besten bedient, indem Sie sie zu erstklassigen Bürgern in Ihrem Modell machen. –

Antwort

2

Sie ein Array von Strings als Eigenschaft speichern kann und das ist, was ich vorschlagen könnte, wenn Sie eine Liste der Interessen einfach sehen wollen, wenn sie mit einem bestimmten Person Knoten arbeiten:

http://neo4j.com/docs/stable/rest-api-property-values.html#_arrays

Wenn Sie Leute nach Interessen suchen möchten, würde ich jedoch dringend empfehlen, sie als Knoten zu speichern. Mit dem Chiffrierbefehl MERGE kann es sehr einfach sein, sie zu verwalten, und es sollte leistungsfähiger sein.

+0

Brian, ich habe ähnliche Frage. Zum Beispiel habe ich zwei Arten: Land und Person. Objekt des Landtyps haben Parameter 'GDP'. Dieser Parameter ist ein Paarpaar (Jahr, BIP). Objekt des Personentyps haben Parametergewicht. Dieser Parameter ist ein Paarpaar (Jahr, Gewicht). Fnd Ich habe verschiedene Beziehungen, von denen zum Beispiel PRESIDENT mit beginnen und Enddaten Wie kann ich mit diesen zusammengesetzten Parametern suchen und wie zum Beispiel finde Person, den Präsident war und kleinsten weigth in Amtszeit oder wo kann ich Informationen über meine Aufgabe lesen? –