在Cypher(neo4j)中更新多个属性

6
我无法在Neo4j中使用SET更新多个属性的节点,有没有处理这种情况的方法?
start n=node:wordindex(word='repine') set     n.wordType = 'rare'         return n

如果我想添加n.link = "...",应该如何操作?
3个回答

13

这是最新的文档:http://neo4j.com/docs/developer-manual/current/cypher/clauses/set/

 MATCH (n { name: 'Peter' })
 SET n += { hungry: TRUE , position: 'Entrepreneur' }

还有其它方法,请查看文档。

如果你是在 node.js 中进行操作,也可以查看这个链接:JSON.Stringify without quotes on properties?

你可以使用util.inspect() 来获取对象,如下所示:

 const util = require('util')

 const params = {
   hungry: TRUE ,
   position: 'Entrepreneur'
 }

 const query = `
   MATCH (n { name: 'Peter' })
   SET n += ${util.inspect(params)}
   RETURN n
 `

9
start n=node:wordindex(word='repine')
set n.wordType = 'rare', n.link='link'
return n

应该这样做


我会尝试的。我曾经尝试过,但失败了。但我会再试一次。 - user2580874
1
文档:http://neo4j.com/docs/stable/query-set.html#set-set-multiple-properties-using-one-set-clause - Travis

1

我有一个例子,我已经尝试过并且成功了!

以下是创建节点的Cypher查询:

CREATE (n:myAsset {name: 'Test CBP2', Description: 'my test Description', GUID: 'ID000002', Subtype: 'cat-a-cb', Notes: 'my_Notes'  })

我使用SET更新了多个属性:

MATCH (n:myAsset {GUID: 'ID000002'}) SET n.Description='Updated description',n.Subtype='cat-b-cb', n.Notes='New Notes added' RETURN n

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接