Konvertieren Sie neo4j-Abfrageergebnisse in graphjson wie Knoten und Links in nodejs
P粉035600555
P粉035600555 2024-04-02 18:29:29
0
1
500

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粉035600555
P粉035600555

Antworte allen(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/

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage