私はプレイヤーとゲームのノードタイプを持っています....プレイヤーは他のプレイヤーをゲームに招待できます。
プレイヤーAがプレイヤーBを招待すると、次のようになります。
A-[:INTERACT]->game<-[:INTERACT]-B , game.initiator = ID(A) , game.state = 'INVITE'
ご覧のとおり、ゲーム内のプロパティを使用して、誰が誰を招待したかを表しています。
ゲームは多くの状態にある可能性があります。
特定のプレーヤーについて、状態 = INVITE であり、彼がそれらを開始するこれを除いて、すべての彼のゲームを取得するためのクエリが必要です。
次のことを試してみましたが、簡単なケースのように聞こえますが成功しませんでした:
START playerA = node()
match playerA-[:INTERACT]->game<-[:INTERACT]-otherPlayer
where not(game.state = 'INVITE' and game.initiator = ID(playerA))
return game
例:
http://console.neo4j.org/r/fkpoht
START playerB = node(15)
MATCH playerB-[:INTERACT]->game<-[:INTERACT]-PlayerA
WHERE NOT (game.state = 'INVITE' AND game.initiator = ID(playerB))
RETURN game
上記のクエリがゲームを返さないのはなぜですか? 最初の条件が true 秒が false not(true&false) = true...
この単純なクエリを正しく行う方法は何ですか? あなたの答えは高く評価されています。