返回多列
Returning multiple columns
大家好,这里是 Neo4J 的所有新手,
我正在尝试在 neo4J broswer 环境中使用以下简单查询 return 键或属性。
MATCH (n:movies),(m:people)
RETURN properties(n,m)
我想要实现的是 return 电影和人物节点的属性
但是,我总是会得到一个错误
Too many parameters for function 'properties' (line 2, column 9 (offset: 36))
" RETURN properties(n,m)"
我试过了,
MATCH (n:movies),(m:people)
RETURN properties(k) in [n,m]
我会得到的错误
Variable `k` not defined (line 2, column 20 (offset: 47))
" RETURN properties(k) in [n,m]"
我正在尝试将此处的列表传递给 k,但 NEO4J 不允许我这样做。甚至可以将列表传递给函数 properties() ??
提前致谢。
properties()
只接受一个参数,你可以试试
MATCH (n:movies),(m:people) RETURN properties(n) as prop_n, properties(m) as prop_m
或更优化的查询是
MATCH (n:movies) optional match (m:people) RETURN properties(n) as prop_n, properties(m) as prop_m
MATCH (n:movies),(m:people)
RETURN properties(k) in [n,m]
因为你没有定义 k 所以你得到了错误。同样根据 doc properites() 将“returns 关系、节点或映射的表达式”作为参数。不支持您的查询。
properties function只接受一个节点或一个关系作为输入。
MATCH (n:movies),(m:people) RETURN properties(n), properties(m)
将创建一个 Cartesian Product。
即如果你有五部电影和十个人,你将得到所有 50 种组合的结果。
如果您不是在寻找笛卡尔积,则必须定义特定模式或进一步限制 MATCH 子句。
如果您只需要单个属性而不需要组合它们,请考虑 Union。
MATCH (n:Movie)
RETURN properties(n) as `Properties`
UNION ALL
MATCH (m:Person)
RETURN properties(m) as `Properties`
为什么我要为看似简单的查询使用别名?为避免这种情况:
All sub queries in an UNION must have the same column names (line 3,
column 1 (offset: 39))
使用列表:
collect function lets you create/construct a list from the results while UNWIND 将列表扩展为一系列行。
大家好,这里是 Neo4J 的所有新手, 我正在尝试在 neo4J broswer 环境中使用以下简单查询 return 键或属性。
MATCH (n:movies),(m:people)
RETURN properties(n,m)
我想要实现的是 return 电影和人物节点的属性 但是,我总是会得到一个错误
Too many parameters for function 'properties' (line 2, column 9 (offset: 36))
" RETURN properties(n,m)"
我试过了,
MATCH (n:movies),(m:people)
RETURN properties(k) in [n,m]
我会得到的错误
Variable `k` not defined (line 2, column 20 (offset: 47))
" RETURN properties(k) in [n,m]"
我正在尝试将此处的列表传递给 k,但 NEO4J 不允许我这样做。甚至可以将列表传递给函数 properties() ??
提前致谢。
properties()
只接受一个参数,你可以试试
MATCH (n:movies),(m:people) RETURN properties(n) as prop_n, properties(m) as prop_m
或更优化的查询是
MATCH (n:movies) optional match (m:people) RETURN properties(n) as prop_n, properties(m) as prop_m
MATCH (n:movies),(m:people)
RETURN properties(k) in [n,m]
因为你没有定义 k 所以你得到了错误。同样根据 doc properites() 将“returns 关系、节点或映射的表达式”作为参数。不支持您的查询。
properties function只接受一个节点或一个关系作为输入。
MATCH (n:movies),(m:people) RETURN properties(n), properties(m)
将创建一个 Cartesian Product。
即如果你有五部电影和十个人,你将得到所有 50 种组合的结果。
如果您不是在寻找笛卡尔积,则必须定义特定模式或进一步限制 MATCH 子句。
如果您只需要单个属性而不需要组合它们,请考虑 Union。
MATCH (n:Movie)
RETURN properties(n) as `Properties`
UNION ALL
MATCH (m:Person)
RETURN properties(m) as `Properties`
为什么我要为看似简单的查询使用别名?为避免这种情况:
All sub queries in an UNION must have the same column names (line 3, column 1 (offset: 39))
使用列表: collect function lets you create/construct a list from the results while UNWIND 将列表扩展为一系列行。