Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
问:如何在Neo4j中的合并语句中包含WHERE子句_Neo4j_Cypher - Fatal编程技术网

问:如何在Neo4j中的合并语句中包含WHERE子句

问:如何在Neo4j中的合并语句中包含WHERE子句,neo4j,cypher,Neo4j,Cypher,我有一个对象具有唯一但不是必需的属性,即Facebook ID。如果我插入另一个具有相同名称的对象,并且有一个对象没有Facebook ID,则我假设它们是相同的。如果有一个对象的名称相同,但Facebook ID不同,那么我假设它们不同,并创建一个新对象 我尝试过基于Cypher文档的各种语句,但都无法使它们成为有效的语法 虽然这个例子是无效的,但我认为它说明了我要做的事情: MERGE (t:Thing {name: 'My Not Always Unique Name'}) WHERE E

我有一个对象具有唯一但不是必需的属性,即Facebook ID。如果我插入另一个具有相同名称的对象,并且有一个对象没有Facebook ID,则我假设它们是相同的。如果有一个对象的名称相同,但Facebook ID不同,那么我假设它们不同,并创建一个新对象

我尝试过基于Cypher文档的各种语句,但都无法使它们成为有效的语法

虽然这个例子是无效的,但我认为它说明了我要做的事情:

MERGE (t:Thing {name: 'My Not Always Unique Name'})
WHERE EXISTS(t.facebook_id) AND t.facebook_id <> '111111111'
ON CREATE SET t.name = 'My Not Always Unique Name', 
              t.facebook_id = '111111111', 
              t.another_property = 'blah'
ON MATCH SET t.another_property = 'blah'
RETURN t;
MERGE(t:Thing{name:'我的名字不总是唯一的')
哪里存在(t.facebook_id)和t.facebook_id“111111111”
在创建集合t.name='My Not everys Unique name'时,
t、 facebook_id='111111111',
t、 另一个_属性='blah'
在匹配集t上,另一个_属性='blah'
返回t;

我相信我有一个答案,这取决于我将UUID设置为id属性

OPTIONAL MATCH (t:Thing {name: 'My Not Always Unique Name'}) WHERE t.facebook_id IS NULL OR t.facebook_id = '1111111' 
WITH t 
MERGE (s:Thing {id: COALESCE(t.id, 'e8344f24-faff-443a-ac48-b757381eddb8')}) 
ON MATCH SET s.name = 'My Not Always Unique Name', s.facebook_id = '1111111'
ON CREATE SET s.name = 'My Not Always Unique Name', s.facebook_id = '1111111' RETURN s;
不确定这是否是最好的方法,但对我来说很有效。我将把这个问题留一点时间,看看是否有人有更好的答案


一个负面影响是,如果我插入的内容没有facebook id,它将需要一个单独的合并语句。

返回b
??b是什么?那会是打字错误。。。固定的