有没有办法通过cypher返回一个整数?neo4j返回一个整数,而不是{高:0,低:10}
我正在使用neo4j和javascript驱动程序。但是,当我做count()
我得到{low: 10, high: 0}
。我想强制这个返回一个低整数而不是上面的对象。这是可能的通过密码?
请注意,我不希望这样做的Neo4j的JavaScript的驱动程序和喜欢做这暗号,因为我知道这将是一个低的数字...
有没有办法通过cypher返回一个整数?neo4j返回一个整数,而不是{高:0,低:10}
我正在使用neo4j和javascript驱动程序。但是,当我做count()
我得到{low: 10, high: 0}
。我想强制这个返回一个低整数而不是上面的对象。这是可能的通过密码?
请注意,我不希望这样做的Neo4j的JavaScript的驱动程序和喜欢做这暗号,因为我知道这将是一个低的数字...
Cypher支架只能用龙和双值工作。 Javascript无法充分代表64位Long。
有Neo4j javascript驱动程序的advice here为处理这个问题,当提供参数给Neo4j查询时,以及处理返回的长整数。
是的,我看到了。但有没有办法强制neo4j使用Double值,以便它们以JS的形式出现ints?每次我有一个使用整数的查询时,必须编写定制的JS逻辑非常繁琐。 –
你可以写你的转化的简单处理:
var transformIntegers = function(result) {
return new Promise((resolve,reject) => {
try {
result.records.forEach(function(row, i) {
row._fields.forEach(function(val, j) {
result.records[i]._fields[j] = neo4j.isInt(val)
? (neo4j.integer.inSafeRange(val) ? val.toNumber() : val.toString())
: val;
})
})
resolve(result);
} catch (error) {
reject(error);
}
});
};
而且作为一个例子:
session
.run('MATCH (A) RETURN ID(A) AS id, toInteger(10^20) as unsafe LIMIT 1')
.then(transformIntegers)
.then(function(result) {
console.log(result.records[0]);
session.close();
driver.close();
})
.catch(function(error) {
console.log(error);
});
能否请您分享整个Cypher支架查询? –