4

これのコードはまだありませんが、必要なものとは反対のものがあります

current_user.friends(:f).match_to(event)

これは、私のイベント ノードに関連する友人を返します。私が必要としているのは、この関係を持たないものです。

ドキュメントのように何かを与える必要がありますか

blog.query_as(:blog).match("blog<-[:COMMENTS_ON]-(:Comment)<-[:AUTHORED]-(author:Person)").where("author.age > 30").pluck(:author)

しかし、関係はありませんか?

のようなもの

current_user.friends.query_as(:f).match("event<-[invite:invited]-(f:User)).where(invite: nil)

それとも別の方法がありますか?

4

1 に答える 1

6

cypher で MATCH を指定すると、関係が存在しなければならないと言っているため、そのクエリは機能しません。あなたがする必要があるのは、WHERE句で一致するASCII構文を使用することです(これはneo4jがしぶしぶ正確にこのケースをサポートしています):

current_user.friends.query_as(:friend).
  match(event: {neo_id: event.neo_id}).
  where("NOT(friend-[:invited]->(event:Event))").
  pluck(:friend)

match(event: event)その2行目でできるはずだと思います。できるかもしれませんが、忘れてしまいました。

またmatch_to、チェーン内の最新の関連付けに適用されることに注意してください (したがって、最初の例では、eventオブジェクトをユーザーの友人の 1 人と一致させようとしますが、これは機能しません)。

于 2014-12-09T13:31:15.713 に答える