在neo4j cypher会话中捕获错误:structure (127 [object] [object])
catch error: structure (127 [object] [object]) on neo4j cypher session
我以前有过类似的错误,但这是由.run语句中的语法错误引起的。
我一遍又一遍地看这段代码,找不到语法,所以我认为还有别的事情在发生。该函数由护照反序列化器调用,并使用node-inspector确认"id"的值。但是,无论使用哪种类型的MATCH查询,都会得到相同的.catch错误。
我已经尝试了WHERE选项和直接选项…它们都在neo4j浏览器中工作。有人能看到我没看到的吗
router.getUserByID = function (id, callback) {
session
.run ("MATCH (user {id(user) : {paramUserID}}) RETURN user",{paramUserID: parseInt(id)})
.then (function(result)
{
if ( !result.records[0])
{
console.log("unknow user by id");
session.close();
if (typeof callback==="function") {
return callback(null,false);
}
} // end of if not found
else
{
console.log("user by id found");
session.close();
if (typeof callback === "function") {
return callback(null,result);
}
}
})
.catch(function(err)
{
console.log("catch error: "+err);
});
} // end of get user by id
您不能以这种方式引用节点的Neo4j id,您必须使用WHERE
子句:
MATCH (user) WHERE id(user) = {paramUserID} RETURN user;
如果您有一个应用程序id(几乎总是一个好主意),那么您可以这样做:
MATCH (user {uuid: {paramUuid}}) RETURN user;
使用标签会更好,因为不同的实体可以有相同的id,并且您可以使用唯一性约束(它也对值进行索引,因此查询更快):
CREATE CONSTRAINT ON (n:User) ASSERT n.uuid IS UNIQUE;
// Later
MATCH (user:User {uuid: {paramUuid}}) RETURN user;
相关文章:
- 函数未在Object.keys或Object.getOwnPropertyNames下列出,但可以调用
- delete在Object上效率低下,但在DOM Element's的数据属性,与null out相比
- 有没有一种方法可以列出Ember.Object的所有绑定
- 如何取消object.prototypes javascript的一个函数
- 为什么是文档.旧版应用程序中的DOM-object.properties为null
- 将*.js文件的内容放入Object中
- Object.prototype using 'this'
- 使用Object.create()的角度服务继承
- 如何使用object.assign()从其他对象引用基本对象属性
- 循环的数组推入在Object容器中具有不同的值
- reducers在redux中得到Function not Object,what'it’他错了
- JSON.stringify和Object.keys在同一个对象上产生不同的结果
- 在使用object.create创建的对象中使用super
- Join架构验证:Join.object定义数组中的有效键
- jquery打印[object XMLDocument]而不是文件内容
- ExtJS 4 Object.prototype fail
- JavaScript-从对象数组中输出随机OBJECT
- 为什么“{}+1”在Chrome和Firefox中排名第一,而字符串'[object object]1'
- JS将OData$filter字符串解析为Object Structure
- 在neo4j cypher会话中捕获错误:structure (127 [object] [object])