我想从ArangoDB中的文档中删除一个属性。如何永久取消ArangoDB文档的属性?
我认为正确的方法是使用函数UNSET(doc, attributeName1, ..., attributeNameN)
。但是,仅凭这一点,数据库中就没有任何变化。
例子:
let target_key = "42"
FOR doc IN myCollection
FILTER doc._key == target_key
RETURN UNSET(doc, "myAttribute")
该示例返回原始文档没有属性myAttribute
,但新版本不保存到数据库,如此看来,这只是一个预计的副本。
嘿,感谢您的意见,我不知道这种方式。 “OPTIONS {keepNull:false}”在文档中如何用'null'处理其他属性?假设我想删除一个属性,但想保留其他属性,即使它们是“null”。另一个问题可能是:没有“空值”的(缺点)优点是什么? –
正如我所提到的,其他属性将保持不变,即使它们是* null *。只有'myAttribute'将被上面的查询删除,因为它是唯一提供的属性:'WITH {myAttribute:null}'。一般而言,您可能会或可能不会在您的文档中存储空值,这取决于您需要表达的内容。在大多数情况下,我假设你可以简单地删除一个属性,如果它是未使用的。如果您需要区分值不可用与实际为空,则在后一种情况下存储空值是合法的。 – CoDEmanX
非常好。谢谢,我现在看到你明确提到它。你认为哪种方法更好?或者,您认为我应该将哪个答案标记为“已接受的答案”? –