【问题标题】:How do we write gremlin update/modify query in node.js?我们如何在 node.js 中编写 gremlin 更新/修改查询?
【发布时间】:2021-03-03 19:24:30
【问题描述】:

我们如何在 node.js 中编写 gremlin 更新/修改查询?

我想更新特定字段并保存,不要修改其他未编辑的字段。

我有一个名为“org”的表,它有一些属性,如名称、id、标签。
我们如何修改特定属性或所有属性取决于 put body 请求?使用 gremlin 查询

【问题讨论】:

  • 我有一个名为“org”的表,它有一些属性,如名称、id、标签。我们如何修改特定属性或所有属性取决于 put body 请求?使用 gremlin 查询

标签: node.js gremlin amazon-neptune


【解决方案1】:

任何属性都可以按如下方式更新(假设它是单个值而不是集合)

g.V('some-id').
  property(Cardinality.single,'my-property',new-value).
  iterate()

更新:如果您需要更新多个属性的内容,您可以将property 步骤链接在一起。

g.V('some-id').
  property(Cardinality.single,'p1',new-value).
  property(Cardinality.single,'p2',new-value).  
  property(Cardinality.single,'p3',new-value).  
  property(Cardinality.single,'p4',new-value).iterate()

再次更新

如果您只想在属性已存在的情况下设置属性值,您可以使用“has”步骤检查其是否存在,如下所示。

g.V('some-id').
  has('p1').
  property(Cardinality.single,'p1',new-value)

如果您想对多个属性执行此操作,您可以使用optional 步骤作为执行多项此类检查的一种方法。

g.V('some-id').
  optional(has('p1').
    property(Cardinality.single,'p1',new-value)).
  optional(has('p2').
    property(Cardinality.single,'p2',new-value)).

可以在 [1] 和 [2] 中找到一些附加信息

[1]http://www.kelvinlawrence.net/book/PracticalGremlin.html#addnodes

[2]https://tinkerpop.apache.org/docs/current/reference/#addproperty-step

【讨论】:

  • 这适用于单个属性更新,我们如何更新顶点中的多个属性?
  • 我在答案中添加了另一个示例,并提供了一些指向更多示例的链接。
  • 有没有办法动态更新属性?我的意思是当该字段不存在时,它不应该更新该字段?
  • 我添加了一些额外的例子。如果您有其他后续问题,我建议您打开一个新问题,这样这不会成为一个超长的线程。
  • 另外,如果当前问题的答案是好的,如果你能接受它会很好,以便其他人可以看到这个有答案。非常感谢
猜你喜欢
  • 1970-01-01
  • 2020-04-10
  • 1970-01-01
  • 1970-01-01
  • 2017-06-10
  • 2011-03-08
  • 1970-01-01
  • 1970-01-01
  • 2013-03-20
相关资源
最近更新 更多