我一直在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.' });
}
};
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
您可以将 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/