arangodb/aql 更新文档数组

arangodb/aql update array of documents

给定以下文档结构:

{
  "active": "N",
  "code": "AL",
  "id": 3,
  "mcc": "+355",
  "name": "Arango",
  "participant": [
    {
      "actor": {
        "reference": "Patient/example",
        "display": "Peter James Chalmers"
      },
      "required": "required",
      "status": "not booked"
    }
  ]
}

我想将参与者数组[*].status 从“未预订”更新为“已预订”。

你能告诉我更新数组值的 Arango 查询吗?

这是一个使用 inline projection 的解决方案:

FOR doc IN coll
  FILTER doc._key == "<key>"
  UPDATE doc WITH {
    participant: doc.participant[* RETURN MERGE(CURRENT, {status: "booked"})]
  } IN coll

请注意,这会将 participant 数组中所有对象的状态设置为“已预订”。