如何添加无穷大,NaN,或者空值的双重[]属性的Cypher支架/ Neo4j的一个节点上(How

2019-10-21 07:16发布

我在我的Neo4j图形是多个实体的组合一些节点。 在这些节点我有一个名为“P_VALUE”具有类型的双[]属性。

我合并的新实体到现有的节点和我的合并命令我使用的是比赛推新p_values到这个双[]数组的结尾。 问题是,我的一些实体的我没有p_values,所以我需要推像负无穷大/无穷大,NaN,或NULL到我的双[]数组P_VALUE。

下面是一个例子暗号查询我试过。

MERGE (process:GOTERM { name: "immune system process", go_id: 50896})
ON CREATE SET process.som = ["som_mouse_3_2"], process.p_value = [NULL]
ON MATCH SET process.som = process.som + "som_mouse_3_2", process.p_value = process.p_value + NULL;

这里的问题是,如果我有与“名”和“go_id”当我尝试将NULL值添加到p_values现有阵列P_VALUE属性将被删除现有节点。

Answer 1:

难道你真的想有数组中的一个空值或者它会更好,只是去碰它在空的情况下?

怎么样这样的事情,你只设置P_VALUE如果newPValue非空?

WITH null AS newPValue
MERGE (process:GOTERM { name: "immune system process", go_id: 50896})
ON CREATE SET process.som = ["som_mouse_3_2"], process.p_value = []
ON MATCH SET process.som = process.som + "som_mouse_3_2", 
             process.p_value = CASE WHEN newPValue is null THEN process.p_value ELSE process.p_value + newPValue END
RETURN process


文章来源: How to add infinity, NaN, or null values to a double[] property on a node in Cypher/Neo4j