如何在Arango DB中删除嵌套记录

时间:2019-01-28 21:32:16

标签: arangodb aql

我要删除经度

{
  "property_status": "available",
  "property_address": {
    "latitude": 35.1269874,
    "longitude": 45.34897523
  }
}

1 个答案:

答案 0 :(得分:1)

由于您未提供任何上下文,让我向您展示如何在AQL中执行此操作:

FOR doc IN coll
  FILTER ... // find the right document(s)
  UPDATE MERGE(doc, { property_address: {} }) IN coll

查询的想法是将property_address的属性值替换为空对象。如果该对象除了要保留的纬度和经度之外,还包含其他子属性,那么这不是一个选择。

让我们假设以下文件:

{
  "_key": "1234",
  "property_status": "available",
  "property_address": {
    "latitude": 35.1269874,
    "longitude": 45.34897523,
    "place": "Kalar"
  }
}

如果我们要删除latitudelongitude而不是place,则可以在AQL中执行以下操作:

FOR doc IN coll
  FILTER doc._key == "1234"
  UPDATE MERGE(doc, { 
    property_address: UNSET(doc.property_address, "latitude", "longitude")
  }) IN coll