【问题标题】:Add Additional Property to Neptune DB向 Neptune DB 添加其他属性
【发布时间】:2020-10-06 16:55:24
【问题描述】:

我正在尝试将名为“insert_date”的附加属性添加到现有顶点和边。我试过了

g.V().setProperty('insert_date',datetime('2020-10-06'))

错误:

{
  "requestId": "33cf8df5-3cbe-41ac-b650-5752debec04d",
  "code": "MalformedQueryException",
  "detailedMessage": "Query parsing failed at line 1, character position at 10, error message : token recognition error at: 'rop'"
}

我正在从 Neptune Notebook 尝试上述命令。

它只是用 insert_date 属性添加新的顶点。但是我没有找到改变现有顶点或边的方法。

如果可能,请提出建议。因为我想实现增量提取,以便每次运行 ETL 时只能提取新的顶点或边。

谢谢

【问题讨论】:

  • 您能否提供一些关于海王星添加新顶点的问题的更多详细信息?上面的代码将找到一个 id 为 1234 的顶点,如果找到它会将 insert_date 属性设置为 `2020-10-06'。
  • 我已经更新了问题中的命令。实际上我正在尝试将新属性添加到现有顶点,即 insert_date 属性。

标签: graph gremlin amazon-neptune


【解决方案1】:

要将属性添加到 Gremlin 中的现有顶点,请使用 property() 步骤。例如,如果您想将属性 insert_date 添加到 id 为 A 的顶点,您可以使用以下语句:

g.V('A').property('insert_date', '2020-10-06')

property() 步骤会将指定的属性添加或更新为新值。这将发生在所有当前传入的元素上。例如,如果您只想更新没有 insert_date 属性的元素,您可以通过以下方式执行此操作:

g.V().hasNot('insert_date').property('insert_date', '2020-10-06')

在每个示例中,属性都将作为值数组的一部分添加。如果您想将属性设置为仅包含单个值,则可以使用 property() 步重载,它采用如下基数:

g.V('A').property(Cardinality.single, 'insert_date', '2020-10-06')

在上面列出的代码中需要注意的一点。虽然 Neptune 确实支持基于字符串的查询的 datetime() 函数,但如果您不使用 GLV,那么您将需要创建此值并传入原生日期/时间,如 here 所述。

【讨论】:

    【解决方案2】:

    以下命令用于向现有图表添加其他属性。

    g.V().property("insert_date","2020-01-01 00:00:00")
    
    

    【讨论】:

    • 这会将图表中每个顶点的insert_date 属性添加或更新为“2020-01-01 00:00:00”。不确定这是否是预期的行为。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多