javascript - 如何通过使用属性(n)的密码请求获取 Node ID?

标签 javascript node.js neo4j cypher

我正在尝试获取 SomeNode 和 OtherNodes 的所有属性和 ID。

我有这个查询:

const neo = driver.session();
const responseObj = { error: false, message: 'success: getting nodes' };

const q = 'MATCH (n:SomeNode)-[:has]->(o:OtherNode), ' +
' RETURN properties(n) AS node, properties(o) AS otherNode';

neo.run(q)
 .then((result) => {
  const records = result.records;
  const nodes = [];

  records.forEach((record) => {
    nodes.push({
      node:  record.get('node'),
      other: record.get('otherNode')
    });
  });

  responseObj.nodes = nodes;
  neo.close();
  respond(null, responseObj);
});
正如预期的那样,这给了我一个包含 SomeNode 属性和 OtherNode 属性的对象数组,但我还需要 SomeNode 和 OtherNode 的 id。实现这一目标的最佳方法是什么?

如果返回 Node 如何获取ID?

enter image description here

最佳答案

您可以使用map projection获取 Node 的属性并进行自定义,例如通过添加额外的 map 属性。

MATCH (n:SomeNode)-[:has]->(o:OtherNode)
RETURN n {.*, _id:id(n)} AS node, o {.*, _id:id(o)} AS otherNode

虽然直接返回 no 应该默认包含 id。

关于javascript - 如何通过使用属性(n)的密码请求获取 Node ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47134299/

相关文章:

neo4j 根据条件停止遍历(密码)

javascript - TabPanel 内的嵌套列表?

javascript - 在 Node.js 中,相当于 Python 的 pip freeze 的是什么

javascript - 打印图像时无法读取数据 - GCP

node.js - Mongoose InsertMany - 如何获取插入文档的数量?

node.js https没有响应 'end'事件, 'close'代替?

gradle - 切换到1.3.0后,jQAssistant命令行停止工作

csv - 如何将 apoc.load.csv 与 apoc.create.node 结合使用

javascript - 为什么 Observable.create() 中的 setInterval() 一直在运行?

javascript - 瞬间时区 : I don't understand how default timezones work