Heim  >  Fragen und Antworten  >  Hauptteil

Konvertieren Sie neo4j-Abfrageergebnisse in graphjson wie Knoten und Links in nodejs

Ich habe den Neo4j-Treiber in der Node-App verwendet, um Neo4j-Abfrageergebnisse abzurufen. Ich möchte dieses Ergebnis im Graph-JSON-Format (Knoten und Links) erhalten, um es wie folgt in d3 einzufügen: https://www.jsonkeeper.com/b/5ZYS

Aber das Ergebnis, das ich bekomme, ist in diesem Format: https://www.jsonkeeper.com/b/FMJ1

Ich habe einige Lösungen ausprobiert, um dies zu erreichen, aber niemand konnte es perfekt umsetzen. Können Sie mir bei der Umsetzung helfen?

Das ist mein Controller in meiner Node Express-Anwendung:

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粉035600555183 Tage vor354

Antworte allen(1)Ich werde antworten

  • 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/

    Antwort
    0
  • StornierenAntwort