Neo4j 如何在cypher中键入设置值

Neo4j 如何在cypher中键入设置值,neo4j,cypher,Neo4j,Cypher,我提出以下问题 neo4j-sh (?)$ start n=node(*) match n-[r:LIKES]->items with r,items set r.w= (r.ct-items.med)/items.iqr return r,items; ==> +-----------------------------------------------------------------------------------+ ==> | r

我提出以下问题

neo4j-sh (?)$  start n=node(*) match n-[r:LIKES]->items with r,items set r.w= (r.ct-items.med)/items.iqr return r,items;
==> +-----------------------------------------------------------------------------------+
==> | r                                         | items                                 |
==> +-----------------------------------------------------------------------------------+
==> | :LIKES[293] {ct:3,w:-0.6666666666666666}  | Node[255]{name:"f1",iqr:6.0,med:7}    |
==> | :LIKES[294] {ct:13,w:1}                   | Node[256]{name:"f2",iqr:5,med:7}      |
==> | :LIKES[295] {ct:1,w:-0.7692307692307693}  | Node[257]{name:"f3",iqr:3.25,med:3.5} |
==> | :LIKES[304] {ct:3,w:0}                    | Node[256]{name:"f2",iqr:5,med:7}      |
==> | :LIKES[305] {ct:10,w:0.5}                 | Node[255]{name:"f1",iqr:6.0,med:7}        
==> | :LIKES[308] {ct:9,w:0.4}                  | Node[259]{name:"f5",iqr:7.5,med:6.0}  |
==> | :LIKES[313] {ct:2,w:-1}                   | Node[256]{name:"f2",iqr:5,med:7}      |
==> | :LIKES[314] {ct:3,w:-0.6666666666666666}  | Node[255]{name:"f1",iqr:6.0,med:7}    |
==> +-----------------------------------------------------------------------------------+ 

为什么当r.w的值大于1时,它会四舍五入到最接近的整数?我试着把它打成两倍,但我得到了错误。那么,正确的set命令是什么?

使用浮点使其进行浮点运算:

start n=node(*) match n-[r:LIKES]->items with r set r.w= (r.ct-1.0)/5.0 return r;

不,1和5不是常数,它们是从items属性中得到的整数值,也许我应该编辑我的帖子。然后将它们乘以1.0,强制数学是基于浮点的。最终我们会在cypher上增加施法,但现在还没有。