搜尋

首頁  >  問答  >  主體

將neo4j查詢結果轉換為graphjson,就像nodejs中的節點和連結一樣

我一直在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粉035600555P粉035600555231 天前452

全部回覆(1)我來回復

  • P粉668113768

    P粉6681137682024-04-03 16:54:19

    您可以將 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/

    回覆
    0
  • 取消回覆