將neo4j查詢結果轉換為graphjson,就像nodejs中的節點和連結一樣
P粉035600555
P粉035600555 2024-04-02 18:29:29
0
1
460

我一直在node-app中使用neo4j-driver來檢索neo4j查詢結果。我想以圖 json(節點和連結)格式取得此結果,以將其填入 d3 中,如下所示: https://www.jsonkeeper.com/b/5ZYS

但我得到的結果是這種格式的: https://www.jsonkeeper.com/b/FMJ1

我嘗試了一些解決方案來實現這一目標,但沒有人能夠完美地實現它。您能指導我如何實現它嗎?

這是我在 Node Express 應用程式中的控制器:

import neo4j from 'neo4j-driver';
import {
  NEO4J_PASSWORD,
  NEO4J_URL,
  NEO4J_USERNAME,
} from '../../constants/index.js';
export const runMatchQuery = async (req, res) => {
  const query = req?.body?.query;
  if (query?.toLowerCase()?.includes('match')) {
    const driver = neo4j.driver(
      NEO4J_URL,
      neo4j.auth.basic(NEO4J_USERNAME, NEO4J_PASSWORD)
    );
    const session = driver.session();

    try {
      const result = await session.run(query);
      return res.status(200).json(result);
    } catch (error) {
      console.log(error);
      return res.status(500).json({ message: error.message });
    } finally {
      await session.close();
      await driver.close();
    }
  } else {
    return res.send(405).json({ message: 'Query not permitted.' });
  }
};

P粉035600555
P粉035600555

全部回覆(1)
P粉668113768

您可以將 JSON 串流傳輸到節點和關係清單的輸出。

它與您的格式不同,但它與清單中的節點和另一個清單中的關係非常接近。

MATCH (n:MyNode)-[r:MY_REL]-()
WITH COLLECT(n) as mynodes, COLLECT(r) as myrels
CALL apoc.export.json.data(mynodes, myrels, null, {stream:True, jsonFormat: "JSON", writeNodeProperties:False})
YIELD data
RETURN data

有關 JSON 輸出選項的更多信息,請訪問:https://neo4j.com /labs/apoc/4.1/export/json/

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板