MST

星途 面试题库

面试题:CouchDB的Reduce函数在处理复杂数据结构时的聚合策略

给定CouchDB中的文档数据结构为[{"category":"electronics","products":[{"name":"laptop","price":1000},{"name":"tablet","price":500}]},{"category":"clothes","products":[{"name":"shirt","price":50},{"name":"pants","price":80}]}]。要求编写一个Reduce函数,能够按类别聚合商品价格总和,并展示最终聚合结果的格式以及Reduce函数实现的关键步骤。
40.0万 热度难度
数据库CouchDB

知识考点

AI 面试

面试题答案

一键面试

最终聚合结果的格式

{
    "electronics": 1500,
    "clothes": 130
}

Reduce函数实现的关键步骤

  1. 初始化聚合对象:在Reduce函数开始时,创建一个空对象用于存储每个类别的价格总和。
  2. 遍历文档数据:对于给定的文档数据结构,遍历每个文档。
  3. 处理每个文档
    • 对于每个文档,获取其category
    • 遍历该文档中的products数组,累加每个产品的price到对应category的总和中。
  4. 返回聚合结果:最后返回包含每个类别价格总和的对象。

以下是JavaScript实现的Reduce函数示例:

function reduceFunction(data) {
    let result = {};
    data.forEach(doc => {
        let category = doc.category;
        doc.products.forEach(product => {
            if (!result[category]) {
                result[category] = 0;
            }
            result[category] += product.price;
        });
    });
    return result;
}