2

クライアントが Neo4j 永続化レイヤーに渡すのはペアのコレクションであり、それらのペアに対応するプロパティを持つノードを検索する必要があります。これは私が思いついたクエリであり、動作しているようです (次のように: テスト ケースの期待される結果を返します)。

START root=node(0)
MATCH (root)-[:HAS_IDENTITY_PROVIDER]->(ip)<-[:IDENTITY_PROVIDER]-(claim)<-[:CLAIM]-(user)
WHERE [ip.Name, claim.IdentityProviderId] in [['facebook', 'f111'], ['facebook', 'f222'], ['facebook', 'f333'], ['twitter', 't444'], ['facebook', 'f555']]
RETURN user.Id AS Id, user.FirstName AS FirstName, user.LastName AS LastName, user.Avatar AS Avatar, count(*) AS Score
ORDER BY Score desc, FirstName, LastName;

今、同様のアプローチに従う別のクエリを作成しようとしていますが、次のエラーで失敗します"NotFoundException: Unknown identifier 'user':

START root=node(0)
MATCH (root)-[:HAS_USER]->(user)
WHERE [user.FirstName, user.LastName] in [['Alice', 'Apple']]
RETURN user.Id AS Id, user.FirstName AS FirstName, user.LastName AS LastName, user.Avatar AS Avatar;

userで文句を言う。WHERE

最初のものは機能し、2 つ目は機能しないのはなぜですか? それらの間に大きな違いを見つけることはできません。

(また、このアプローチがある種のハックと見なされるかどうか、またはこれを達成するためのより良い/クリーン/高速な方法があるかどうかはわかりません。私はいつでも提案を受け付けています。)

ありがとう!

4

0 に答える 0