2017-08-12 9 views
1

ArangoDBを使用してソーシャルメディアコンテンツに基づいてリレーショングラフを作成しようとしています。現在、私は、これらのドキュメントタイプのコレクションを持っている:arangodbすべてを選択する関係グラフを作成するタイムスタンプ

  • コンテンツ
  • ユーザー

およびこれらエッジ型のコレクション

  • コメント
  • ポスト
  • post_mentions
  • user_mentions
  • 再転記

各エッジデータ収集は_fromを使用し、コンテンツとユーザコレクションから_to、例えば、私のポストコレクションに、_fromキーがユーザからのものであり、_to鍵は、コンテンツにコンテンツ(ユーザからです)など、他のエッジコレクションについては、

私の目標は、単にタイムスタンプがフィルタ値として提供されるノードとエッジをすべて取得し、そこからグラフを作成することです。

これは、可変頂点までの開始頂点に接続されたエッジをたどるグラフが横切っていることを示しています。これはdocumentationです。私の場合、私は開始頂点なしで、フィルター値としてタイムスタンプを使用して、そのようにしたいと考えています。これは可能ですか?

現在、これは私が開始頂点とクエリのために、これまでに得たものである:

with user, content FOR node, edge, path IN 0..10 
ANY 'user/twitter_xxx' 
post, 
repost, 
comment, 
user_mention, 
post_mention 
    OPTIONS {uniqueEdges: "path"} 
    LIMIT 0,100 
    RETURN path 

、これが私のサンプル文書データである:

{ 
    "created_at": 1502335201000, 
    "emotions": [ 
    "neutral" 
    ], 
    "hashtags": [], 
    "id": "xxx", 
    "inserted_at": "Fri Aug 11 01:29:08 WIB 2017", 
    "language": "id", 
    "media": [], 
    "media_type": "twitter", 
    "mentions": [], 
    "origin_id": "twitter_xxx", 
    "sentiment": 0, 
    "text": "Some text from twitter post", 
    "type": "twitter_post", 
    "user_id": "twitter_xxx" 
} 

私はそれを変更することが少し混乱していますタイムスタンプを使用する。 ヘルプやポインタが高く評価されます、ありがとう!

答えて

0

私はあなたを正しく理解しており、すべてのコンテンツを持つすべてのユーザーに、定義されたタイムスタンプが必要だと仮定して、次のクエリが役に立ちます。

すべてのユーザーを対象に反復処理を行い、各ユーザーのグラフを開始点として開始し、ノード上のcreated_atにフィルターをかけます。結果は、ユーザーとフィルターステートメントに収まるすべての内容の配列を持つオブジェクトの配列です。

FOR u IN user 
    LET content = (
    FOR node, edge, path IN 1..10 
    ANY u._id 
    post, repost, comment, user_mention, post_mention 
     FILTER node.created_at >= @timestamp 
     RETURN node) 
    RETURN {user: u, content} 
+0

こんにちは、私は質問をしましたが、それは私に次のエラーが表示されます: 'クエリー:シンタックスエラー、予期せぬWITH WITH user、content for node、edg ... ' 2:3(解析中) 'なぜ? –

+0

私は私の答えでクエリを更新しました。今はうまくいくはずです。 – mpv1989

関連する問題