按字段合并文档

Merge documents by fields

我有两种文档。主要文档和附加信息。

{
 "id": "371"
 "name": "Mike",
 "location": "Paris"
},
{
 "id": "371-1",
 "age": 20,
 "lastname": "Piterson"
}

我需要通过 id 合并它们以获得结果文档。结果应如下所示:

{
 "id": "371"
 "name": "Mike",
 "location": "Paris"
 "age": 20,
 "lastname": "Piterson"
}

使用COLLECT / INTO, SPLIT(), and MERGE()

FOR doc IN collection
    COLLECT id = SPLIT(doc.id, '-')[0] INTO groups
    RETURN MERGE(MERGE(groups[*].doc), {id})

结果:

[
  {
    "id": "371",
    "location": "Paris",
    "name": "Mike",
    "lastname": "Piterson",
    "age": 20
  }
]

这将:

  1. 在任何 - 和 return 第一部分
  2. 处拆分每个 id 属性
  3. 将结果分组到单独的数组中 (groups)
  4. 合并#1:将所有对象合并为一个
  5. 合并 #2:将 id 合并到结果

有关写入操作,请参阅 REMOVE & INSERT or REPLACE