有沒有辦法通過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支架查詢? –