1
我想将3个集合的结果合并到单个集合中,但我无法合并最终结果的finishedStatus属性。如何使用UPSERT合并数组?
最终的结果集合:
- 只包含独特的地位
- 每个文件都能够保持排序,使这个状态
- 合并finishedStatus再总结finishedStatus.count
- (可选)机finishedStatus [*]。状态
鉴于
收集阿
{"status": ["1","2","3"], "machine": "A", "finishedStatus": [{"status": "4", "count": 10}, {"status": "5", "count": 1}]}
{"status": ["4","5","6"], "machine": "A", "finishedStatus": [{"status": "3", "count": 5}, {"status": "5", "count": 11}]}
收集乙
{"status": ["1","2","3"], "machine": "B", "finishedStatus": [{"status": "1", "count": 3}, {"status": "5", "count": 14}]}
{"status": ["2","5","2"], "machine": "B", "finishedStatus": [{"status": "5", "count": 5}, {"status": "3", "count": 5}]}
类集c
{"status": ["2","5","2"], "machine": "C", "finishedStatus": [{"status": "5", "count": 2}, {"status": "3", "count": 5}]}
{"status": ["3","2","1"], "machine": "C", "finishedStatus": [{"status": "2", "count": 6}, {"status": "4", "count": 7}]}
收集结果
{"status": ["1","2","3"], "machine": ["A", "B"] , "finishedStatus": [{"status": "1", "count": 3}, {"status": "4", "count": 10}, {"status": "5", "count": 15}]}
{"status": ["2","5","2"], "machine": ["B", "C"], "finishedStatus": [{"status": "5", "count": 7}, {"status": "3", "count": 10}]}
{"status": ["3","2","1"], "machine": ["C"], "finishedStatus": [{"status": "2", "count": 6}, {"status": "4", "count": 7}]}
{"status": ["4","5","6"], "machine": ["A"], "finishedStatus": [{"status": "3", "count": 5}, {"status": "5", "count": 11}]}
如何编写AQL INSERT/UPDATE/UPSERT以做出最终结果?
这是我的AQL
FOR doc IN A
UPSERT {"status": doc.status}
INSERT {"status": doc.status, "machine": [doc.machine], "finishedStatus": doc.finishedStatus}
UPDATE {
"machine": APPEND(OLD.machine, doc.machine, true),
"finishedStatus": <-- I cannot write AQL to update finishedStatus
How to write AQL to update this property?
}
IN result
谢谢