2016-03-22 3 views
1

ActiveNodeを使用すると、ユーザーはどのように名前だけを取得できますか、ノードの名前と説明だけを取得できますか? https://github.com/neo4jrb/neo4j/wiki/Search-and-Matchneo4jrb:パフォーマンスのために必要なプロパティを引き出す

に基づいて

例は次のようにのモデルを拡張してみましょう:「?この生徒の教師の授業で、他にどのような回」

class Lesson 
    include Neo4j::ActiveNode 
    property :scheduled_time 

    has_many :in, :students, origin: :lesson 
    has_many :out, :teachers, type: 'taught_by' 
end 

たい情報がある場合は、我々はそれぞれの時間を必要としますレッスン。 これらのプロパティだけでCYPHERクエリを実行するには、Neo4jrbをどのように使用しますか?

+0

(そして、ボーナスポイントのための単一のアレイでこれらのプロパティを返しますが) – joshfindit

答えて

1

希望のフィールドを選択してモデルオブジェクトとして返すオプションが必要です。 (それはまだありませんので、幸いにも;)しかし、私はそれはあなたが求めているものだとは思わない

をだから私はpluckはあなたが望むものであると信じて:

student.lessons(:student_lesson).teachers.lessons(:other_lesson).where('student_lesson <> other_lesson').pluck(:scheduled_time) 

これは、適切なサイファーを生成し、 scheduled_time値の配列を返します。

この

は、実際にそれを行うための簡単な方法かもしれません:

student.lessons.teachers.lessons.pluck(:scheduled_time) 

、通常の条件のすべてが単一MATCHサイファーは、これまでと同じ関係を横断していないので、これは二度動作するはずであった場合シングルMATCH。ただし、アソシエーション連鎖構文では、複数の句が生成されます(MATCH)。それは実際にはMATCHという単一のものを生成するために使用されていましたが、それには問題がありました。複数の一致対単一についてのより詳細な説明については

、このSO質問を参照してください。

What does a comma in a Cypher query do?