我有一个Neo4J图形数据库,我想在其中存储用户和它们之间的关系。
我希望能够使用包含在.Net用户对象中的数据更新我通过GUID找到它们的用户节点。理想情况下,我想知道如何在Neo4JClient中执行此操作,但即使是普通的Cypher查询也可以。
理想情况下,我想使用整个对象,不知道修改了哪些属性,并替换所有属性 - 包括数组属性 - 不同于下面知道要更新PhoneNumber的示例
这样的事情:
<pymongo.command_cursor.CommandCursor object at 0x02ADD6B0>
上述代码的问题是MATCH (n:`User` {Id:'24d03ce7-8d23-4dc3-a13b-cffc0c7ce0d8'})
MERGE (n {PhoneNumber: '123-123-1234'})
RETURN n
重新定义了MERGE
我收到此错误:
n
答案 0 :(得分:1)
如果您只想完全替换所有 现有节点的属性,请不要使用MERGE
。您应该只使用MATCH
和SET
所有属性。像这样:
MATCH (n:`User` {Id:'24d03ce7-8d23-4dc3-a13b-cffc0c7ce0d8'})
SET n = {PhoneNumber: '123-123-1234', Age: 32}
RETURN n;
另一方面,如果要创建新节点,如果尚未存在具有指定Id
的节点,并且您还希望完全替换新节点或现有节点的所有属性,你可以这样做:
MERGE (n:`User` {Id:'24d03ce7-8d23-4dc3-a13b-cffc0c7ce0d8'})
SET n = {PhoneNumber: '123-123-1234', Age: 32}
RETURN n;
注意:在上述查询中,在添加新属性之前,将删除n
的所有现有属性。此外,n
子句中分配给SET
的映射可以作为参数传递给查询(因此不需要硬编码)。