次のようにNeo4J(組み込み)データベースをセットアップしています:
- 参照ノードにいくつかのユーザー ノードを接続します。
- 各ユーザー ノードには、1 つ以上のプロジェクト ノードを接続できます。
- 各プロジェクト ノードには、複雑なグラフが添付されています。
複雑なグラフは、単一のトラバース パターンでトラバース可能です (それらには隠されたツリー構造があります)。
私がやりたいことは次のとおりです。
- プロジェクト ノードの下にあるすべてのノードを削除します。
- プロジェクト ノードの下に何もない場合、ユーザーの下のすべてのプロジェクト ノードを削除します
- 特定のユーザー ノードの下にあるすべてのノードを .graphML にエクスポートします (おそらく Gremlin Java API を使用しますか?)
- 別のユーザー ノードにある情報を削除せずに、特定のユーザー ノードの下にあるデータベースに .graphML ファイルをインポートして戻します。
Neo4J データベース全体をインポートおよびエクスポートするために、Gremlin GraphML リーダーを既に使用しましたが、サブグラフのインポート/エクスポートについて何かを見つけることができませんでした。
これが実際に可能である場合、Neo4J は、同時に何かをインポートしようとする 2 人のユーザーをどのように処理しますか? たとえば、ユーザー 1 は自分のセクションを user1 ノードの下にインポートし、ユーザー 2 は自分のデータをユーザー 2 ノードの下に同時にインポートします。
もう1つの可能性は、ユーザーごとにNeo4Jデータベースを使用することですが、これは実際にはあまり好ましくないオプションであり、組み込みまたはサーバーバージョンで実際に可能かどうかは非常にわかりません. 異なるポートに複数のサーバーバージョンがあることについて読んだことがありますが、ユーザーの数は定義ごとに無制限です...
どんな助けでも大歓迎です。
EDIT 1:サブグラフを扱うGeoff(org.neo4j.geoff)と呼ばれるものにも出くわしました。これがどのように機能するかについてはまったくわかりませんが、現在調査中です。