【发布时间】:2019-05-03 15:38:59
【问题描述】:
我在 ArangoDB 中有一个现有的集合。但是,文档 Keys 中有一个错字。
是否可以在 Arangodb 的所有文档中重命名给定的 Key ?
【问题讨论】:
我在 ArangoDB 中有一个现有的集合。但是,文档 Keys 中有一个错字。
是否可以在 Arangodb 的所有文档中重命名给定的 Key ?
【问题讨论】:
要更改实际的属性名称,您可以使用类似于以下 AQL:
FOR t IN test1
//FILTER t._key == '299' //optional filter
UPDATE t WITH {
potato: t.Potatoe,
Potatoe: null
}
IN test1
OPTIONS { keepNull: false }
在上面的 AQL 中,我们添加了一个新的属性(potato),将值设置为原始属性(Potatoe)的值,然后将原始属性设置为 null。最后,我们使用 keepNull 选项告诉系统移除 Potatoe 属性。
请注意,上面的 AQL 只会删除作为语句结果的空值。因此,如果您的表中有一个 'rice' 属性已经为空,系统将不会删除它,因为 'rice' 不是更新语句的一部分。
【讨论】:
如果是系统性异常,请使用 AQL-Update 语句,例如:
FOR c IN collection
FILTER c.pointer == OFFENDING_KEY
LET newC = {pointer: CORRECT_KEY}
UPDATE c WITH newC IN collection OPTIONS {exclusive: true}
【讨论】: