私はNeo4jデータベースを操作するNode.jsサーバーを作っています。今私は管理者と投稿のシステムを持っており、管理者は投稿を追加しています。今、私は私が管理ノード「COLLEAGUE_OF」との間の関係を追加するようにネットワークを相互接続することにしたいCypherクエリが機能しないのはなぜですか?
:これは私のグラフがどのように見えるか、現在あります。私はCypherクエリを書いたが、Cypher構文エラーが出ている。
これは構文です:
MERGE (c:Admin)
MERGE (n:BlogPost {mongoId:{idNeo}})
MERGE (b:Admin {mongoAdminId:{idNeoAd}})
MERGE(n)-[:ADDED_BY]->(b), (b)-[:COLLUEGE_OF]->(c)
これは構文を実行し、全体のルートである:
routes.post('/blogPosts/frontpage/:id/:aid', function (req, res) {
const id = req.param('id');
const aid = req.param('aid');
session
.run("MERGE (c:Admin) MERGE (n:BlogPost {mongoId:{idNeo}}) MERGE (b:Admin {mongoAdminId:{idNeoAd}}) MERGE(n)-[:ADDED_BY]->(b), (b)-[:COLLUEGE_OF]->(c)", {idNeo: id, idNeoAd: aid})
.then(function(result) {
res.status(200).json({"response": "BlogPost added to front page."});
session.close();
})
.catch((error) => {
res.status(400).json(error);
});
});
あなたの最初のMERGEは、すべてにマッチします:グラフの管理ノード、およびsu管理ノードを 'b':Adminノードに接続します(' b'がすでに存在する場合は 'b'もそれ自体に接続します)。それは本当にあなたが望むものですか?また、あなたは関係が欲しいと思っています:COLLEAGUE_OF? – InverseFalcon
@InverseFalcon私が望むのは、新しい管理者がすべて他の既存の管理者であるCOLLUEGE_OFに追加されたためです。これを行うにはどうすればこのクエリを変更できますか? – Mike
それは役に立つと思うのですか?相互に同僚ではない管理ノードがありますか?他の種類のノードに接続する、グラフ内のCOLLEAGUE_OF関係(またはグラフ用に計画されている)はありますか?その関係がどこにトラバースされるべきかを書くためにどのような種類のクエリーを計画していますか。 – InverseFalcon