首页 > 解决方案 > 解释 Neo4j 返回的记录

问题描述

Cypher 查询的返回方案通常很复杂,但我对如何访问返回的整数结果感到特别困惑count。是显示错误的数字还是我以错误的方式访问结果?

询问:

MATCH (self:USER {userID: $userID})-[r:FRIEND]-(other:USER) RETURN count(other)

记录的记录:

Record {
    keys: [ 'count(other)' ],
    length: 1,
    _fields: [ [Integer] ],
    _fieldLookup: { 'count(other)': 0 }
}

我打电话_fieldLookup并记录了结果:

{ 'count(other)': 0 }

我知道实际计数是 2,因为我可以通过 neo4j 浏览器直观地验证我的数据库。查询是完全错误的还是我以错误的方式访问它?

我还将感谢有关密码查询的返回架构的任何文档。我还没有找到任何讨论这个的东西。

编辑:图表截图

图形

我在“userID_2”上测试我的查询,实际上他有两个朋友。我还在数据库中的其他一些用户上尝试了这个查询,虽然有些用户实际上是零,但查询总是返回:

{ 'count(other)': 0 }

编辑2:

我试着记录这个

console.log(result.records[0].get(0));

但是得到了这个奇怪的结果:

Integer { low: 2, high: 0 }

2 是我的查询的正确计数,尽管我很困惑为什么high存在。

标签: node.jsneo4jcypher

解决方案


试试这个:

const count = executeResult.records[0].get(0);

它通过索引或字段键引用从记录中获取值


推荐阅读