Nosql 重命名文档密钥Arango DB

Nosql 重命名文档密钥Arango DB,nosql,arangodb,Nosql,Arangodb,我在ArangoDB有一个现有的收藏。但是,其中一个文档键有一个输入错误 是否可以重命名Arangodb中所有文档中的给定密钥?如果是系统异常,请使用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}

我在ArangoDB有一个现有的收藏。但是,其中一个文档键有一个输入错误


是否可以重命名Arangodb中所有文档中的给定密钥?

如果是系统异常,请使用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 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只会删除作为语句结果的空值。因此,如果表中的“rice”属性已为空,系统将不会删除它,因为“rice”不是update语句的一部分。

要更改实际属性名称,可以使用类似于以下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”属性已为null,系统将不会删除它,因为“rice”不是update语句的一部分。

在我的集合中,我有“.Main\u ID”:11400,但我只想用“Main\u ID”重命名“.Main\u ID”。看起来您的查询将更新值,我这样理解您的问题;你可以阅读AQL,一个解决方案与给定的查询没有什么不同——唉,我时间不够——如果你当时还没有找到方法,我可能会在周一更新。在我的收藏中,我有“.Main_ID”:11400,但是,我只想用“Main_ID”重命名“.Main_ID”。看起来您的查询将更新值,我这样理解您的问题;你可以阅读AQL,一个解决方案与给定的查询没有什么不同——唉,我时间不够——如果你当时还没有找到方法,我可能会在周一更新。