2016-03-22 19 views
1

ActiveNode'u kullanarak, bir kullanıcı yalnızca adı veya bir düğümün adını ve adını nasıl alabilir? İstenen bilgiler "? Bu öğrencinin öğretim öğretmen olan başka hangi kere" iseneo4jrb: Performans için yalnızca istenen özellikleri çekme

class Lesson 
    include Neo4j::ActiveNode 
    property :scheduled_time 

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

, biz sadece her birinden kez gerekir:

Örnek şöyle modelini genişletelim https://github.com/neo4jrb/neo4j/wiki/Search-and-Match

dayalı Ders. Sadece bu özellikler için CYPHER sorgusunu yapmak için Neo4jrb'yi nasıl kullanırız?

+0

: Birden maçları vs tek hakkında daha ayrıntılı bir açıklama için

, bu SO soruya bakın – joshfindit

cevap

1

İstediğiniz alanları seçip model nesneler olarak döndürme seçeneğini kullanmak isterim.

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

Bu uygun Cypher oluşturmak ve olacaktır:

Yani pluck istediğini olduğuna inanıyoruz; (henüz orada değil çünkü, neyse) Ama bu sizin için sorduğun buysa sanmıyorum scheduled_time değerlerinin bir dizisini döndürür.

Bu

aslında bunu yapmak için basit bir yol olabilir:

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

Ve normalde koşulların tümü tek MATCH Cypher hiç aynı ilişkiyi çapraz çünkü bu bir iki kez çalışması gerektiğini olsaydı tekli MATCH. Ancak, birleştirme zincirleme sözdizimi, birden çok MATCH yan tümcesi oluşturur. Aslında tek bir MATCH üretmek için kullanılır, ancak bununla ilgili sorunlar vardı (ki şu anda beni kaçar). (: Tek bir dizide bu özellikleri İade Ve bonus puan için)

What does a comma in a Cypher query do?