重命名文档键 Arangodb
Rename Document Key Arango DB
我在 ArangoDB 中已有一个集合。但是,文档 Keys 中有一个拼写错误。
是否可以在 Arangodb 的所有文档中重命名给定的 Key?
如果是系统异常,使用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}
要更改实际的属性名称,您可以使用类似于以下的 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 只会删除作为语句结果的空值。因此,如果您的 table 中的 'rice' 属性已经为空,系统将不会删除它,因为 'rice' 不是更新语句的一部分。
我在 ArangoDB 中已有一个集合。但是,文档 Keys 中有一个拼写错误。
是否可以在 Arangodb 的所有文档中重命名给定的 Key?
如果是系统异常,使用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}
要更改实际的属性名称,您可以使用类似于以下的 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 只会删除作为语句结果的空值。因此,如果您的 table 中的 'rice' 属性已经为空,系统将不会删除它,因为 'rice' 不是更新语句的一部分。