My Neo4jインスタンスには、地元の大学の完全な卒業生データが入力されています。 (248K)ノード(n:卒業生)のうちの小さな%(15K)には、twitter user_nameが含まれています。私の目標は、関係データを取得するためにtwitter screenNamesをロードしてリンクするGITHUBアプリ(TWIITERからNEO4J)を使用することです。私の問題は、以下のクエリ(GITHUBアプリケーションのJavaスクリプトに含まれています)です。Cypherは、卒業生の画面名と一致しない不要なFollower/Followingノードを作成します。私は、アプリケーションから作成される関係のみを許可するクエリを記述したいと思います。 MERGEの代わりに一致する必要があります
MERGE (targetNode:Person {screen_name: {screenName}})
FOREACH (friend in {userList} |
MERGE (friendNode:Person {screen_name: friend.screen_name})
ON CREATE SET friendNode=friend
MERGE (targetNode)-[:FOLLOWS]->(friendNode))
この
は私のアイデアだった....これが明確であれば、私に教えてください - 私は同窓会に一致するようにMERGEを設定する任意の考えについてMATCH (targetNode:Alumni {screen_name: {screenName}})
WHERE targetNode:Alumni.screen_name = {screen_name}
FOREACH (friend in {userList} |
MATCH (friendNode:Alumni {screen_name: friend.screen_name})
SET friendNode=friend
MERGE (targetNode)-[:FOLLOWS]->(friendNode))
おかげで...
var multiline = require('multiline');
exports.upsertOne = multiline(function(){/*
MERGE (n:Person {screen_name: {screenName}})
ON CREATE SET n+={userMap}
RETURN n
*/});
/*
* Parameters are:
*
* screenName - string, the handle of the person to attach followers to
* userList - array of objects, people to merge and create relationships
*/
exports.upsertManyAndFollows = multiline(function() {/*
MATCH (followeeNode:Alumni {screen_name: {screenName}})
UNWIND {userList} as follower
MATCH (followerNode:Alumni {screen_name: follower.screen_name})
SET followerNode=follower
MERGE (followerNode)-[:FOLLOWS]->(followeeNode)
*/});
/*
* Parameters are:
*
* screenName - string, the handle of the person to attach followers to
* userList - array of objects, people to merge and create relationships
*/
exports.upsertManyAndFriends = multiline(function() {/*
MATCH (targetNode:Person {screen_name: {screenName}})
UNWIND {userList} as friend
MATCH (friendNode:Person {screen_name: friend.screen_name})
SET friendNode=friend
MERGE (targetNode)-[:FOLLOWS]->(friendNode)
*/});
/*
* Parameters are:
*
* screenName - string, the handle of the person that is at the center of the graph.
*
*/
あなたは遭遇している問題と、正確に助けが必要な箇所を明確にしていません。これが閉鎖される前に説明を明確にしてください。 – InverseFalcon
あなたはあなたが作成したと言っていることをひとつ言います。アプリケーションの別の部分のPersonノードですが、使用しています。最後のクエリの同窓ノード。同じラベルを使用していることを確認してください。 – InverseFalcon
これが役に立ったら教えてください。私はもう一度やり直してはいけません... – INNOSOLjim