MST

星途 面试题库

面试题:CouchDB中Reduce函数如何对数值型数据进行求和聚合

在CouchDB的Reduce函数场景下,假设文档中有一系列数值型字段,如商品价格,你需要编写一个Reduce函数来计算这些商品价格的总和。请描述具体的实现思路以及核心代码片段。
48.0万 热度难度
数据库CouchDB

知识考点

AI 面试

面试题答案

一键面试

实现思路

  1. 理解Reduce函数:Reduce函数会将多个文档的内容进行合并处理。在CouchDB中,它通常会接收键值对数组作为输入。
  2. 处理输入数据:遍历输入的键值对数组,提取出表示商品价格的数值。
  3. 计算总和:将提取出的商品价格数值进行累加,得到价格总和。

核心代码片段

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

function (keys, values, rereduce) {
    if (rereduce) {
        return values.reduce(function (sum, value) {
            return sum + value;
        }, 0);
    } else {
        return values.reduce(function (sum, value) {
            return sum + value.price;
        }, 0);
    }
}

解释:

  • keys:通常是文档的键,在这个场景下未直接使用。
  • values:包含文档中的值,这里我们假设每个值对象都有price字段表示商品价格。
  • rereduce:当rereducetrue时,表示这是第二次或后续的Reduce操作,直接对已有的部分结果(values)进行累加;当rereducefalse时,直接从values对象中提取price字段进行累加。