Syntax Cypher中多个浮点数据值的功能

Syntax Cypher中多个浮点数据值的功能,syntax,neo4j,cypher,Syntax,Neo4j,Cypher,在Cypher(我是新来的)中,我有两组变量,其实例在下文中标记为x,z,每个实例存储两个数字,因此如果x有n个值,那么 SUM(toFloat(x.dataValue)) 将存储在xs中的所有2n浮点相加。如果存储在给定x中的浮点数表示为x1,x2,而存储在给定z中的浮点数表示为z1,z2,则求和计算(如果您不介意的话) 在我的问题上下文中,每个z都会考虑一个不同的xs列表,上面的总和将在特定于z的列表上运行其变量x。但是,我想返回一个更复杂的函数;我想计算 \sum_{x} F(x_1,

在Cypher(我是新来的)中,我有两组变量,其实例在下文中标记为x,z,每个实例存储两个数字,因此如果x有n个值,那么

SUM(toFloat(x.dataValue))
将存储在xs中的所有2n浮点相加。如果存储在给定x中的浮点数表示为x1,x2,而存储在给定z中的浮点数表示为z1,z2,则求和计算(如果您不介意的话)

在我的问题上下文中,每个z都会考虑一个不同的xs列表,上面的总和将在特定于z的列表上运行其变量x。但是,我想返回一个更复杂的函数;我想计算

\sum_{x} F(x_1, x_2, z_1, z_2)
对于某些函数F,我可以使用什么语法?例如,我可以打开每个包吗

x.dataValue
有点像

x.dataValue.Item1
等等,类似于

z.dataValue,
然后写一些像

SUM(toFloat(F(x.dataValue.Item1, x.dataValue.Item2, z.dataValue.Item1,
z.dataValue.Item2)))?

我不知道您是否完全理解您的问题,但我相信您可以使用以下功能:

WITH {dataValue : [1,2,3] } AS x, {dataValue:[10,20,30]} as y

WITH y, reduce (total = 0, item in x.dataValue | item + total) AS total_x
WITH reduce(total = total_x, item in y.dataValue | item + total) as total_sum
RETURN total_sum
输出将是:

╒═══════════╕
│"total_sum"│
╞═══════════╡
│66         │
└───────────┘

我不知道您是否完全理解您的问题,但我相信您可以使用以下功能:

WITH {dataValue : [1,2,3] } AS x, {dataValue:[10,20,30]} as y

WITH y, reduce (total = 0, item in x.dataValue | item + total) AS total_x
WITH reduce(total = total_x, item in y.dataValue | item + total) as total_sum
RETURN total_sum
输出将是:

╒═══════════╕
│"total_sum"│
╞═══════════╡
│66         │
└───────────┘

@Brunopers感谢黄色到灰色的背景转换;我不知道如何创造灰色环境。你是在讽刺我吗?无论如何,选择代码块,然后按CTRL+k(或者如果您在macOS中工作,则按command+k)将其格式化为代码。我不是在讽刺。如果我能使用灰色环境,我会的。我不知道Ctrl+K是否能在Windows中工作(这就是我正在使用的),但我下次会试试。@BrunoPeres感谢黄色到灰色的背景转换;我不知道如何创造灰色环境。你是在讽刺我吗?无论如何,选择代码块,然后按CTRL+k(或者如果您在macOS中工作,则按command+k)将其格式化为代码。我不是在讽刺。如果我能使用灰色环境,我会的。我不知道Ctrl+K是否能在Windows中工作(这就是我正在使用的),但我下次会尝试。如果我想对x_1+x_2+x_3+y_1+y_2+y_3求和,这很好,但我正在寻找更复杂的东西,例如(x1-y1)^2/(x2^2+y2^2)。我不知道如何用reduce()做类似的事情。如果我想求x_1+x_2+x_3+y_1+y_2+y_3的和,那就好了,但我正在寻找更复杂的东西,比如(x1-y1)^2/(x2^2+y2^2)。我不知道你怎么能用reduce()做这样的事情。