neo4j
  • structr
  • 2017-05-24 8 views 0 likes 
    0

    structr.orgの "SCHEMA-Editor"でデータベースを作成しました。私は2つのノード "Project"と "ProjectManager"を持ち、これらの関係は "メンバー"です。 私はこのようなグラフの作成にCYPHERクエリを作っ:STRUCTR.orgの2つの既存ノード間の関係を作成する

    MATCH (a:Project),(b:ProjectManager) 
    WHERE a.name = 'X' AND b.name = 'Y' 
    CREATE (a)-[r:MEMBER]->(b) 
    RETURN r,a,b; 
    

    を、私はグラフを表示することが期待が、私はこのメッセージを得た:「MEMBER.idのmust_not_be_empty」サイファーで作成

    答えて

    3

    ノードとの関係をCypherはStructrレイヤーをバイパスし、データベースレベルで直接動作するため、Structrではすぐには使用できません。 Structrにオブジェクトを知らせるためには、いくつかの追加ステップが必要です。ランダムなUUID(ユニバーサルユニークな識別子)を含むid属性が必要です。

    「ツール」 - >「管理者」 - >「関係」 - >「UUIDの追加」を参照してください。

    追加のヒント:Cypherでは、CREATEではなくMERGEを使用して、2つのノード間に重複するリレーションシップを作成しないようにする必要があります。

    +0

    ありがとうございました。私はもう一つの誤解があります。たとえば、ProjectManagerには多くのプロジェクトがあり、ノード間の関係でも「データフィールド」で作成されたすべての情報を含むグラフを表示したいのです。このため、このコマンドを書きました:Match(n)return n)。プロジェクトとマネージャーの間の関係を作成するために別々の暗号コードを記述する必要がありますが、スキーマが不十分ですか? –

    +0

    MATCH(m:Project {title: 'Proj'})< - [:MEMBER] - (ProjectManagers)RETURN ProjectManagers.name;私は 'Proj'のメンバーであるすべてのProjectManagersを返却したいと思います。 –

    +1

    Structrで非常に簡単に行うことができます。そのような簡単なクエリにCypherを使用する必要はありません。リピータ要素(https://support.structr.com/article/275)、StructrScript(https://support.structr.com/article/119)、特にfind()関数(https:///support.structr.com/article/53)。 –

    関連する問題