gpt4 book ai didi

javascript - 使用 View 在 couchDB 中的文档之间返回唯一值

转载 作者:行者123 更新时间:2023-11-28 01:08:58 24 4
gpt4 key购买 nike

我有一系列文档,每个文档都包含日期和字母列表。我需要输出是每个键一个唯一的字母,每个字母的最新日期作为值。

使用一个简单的映射函数,如下所示:

{
"_id": "_design/output",
"_rev": "1-c7b904b0e93709113c49127efb40187a",
"language": "javascript",
"views": {
"output": {
"map": "function(doc) {\n emit(doc.args.report.updated_partitions, doc.timestamp);\n}",
"reduce": "function(key, value, reduce) {\n return (value)\n}"
}
}
}

我得到以下结果:

{"total_rows":2,"offset":0,"rows":[
{"id":"8e561dd15fd33acfc7c4502c58008c2a","key":["a","b"],"value":1403818824},
{"id":"8e561dd15fd33acfc7c4502c5800a212","key":["a","c","d"],"value":1403818700}
]}

我正在寻找的输出应该如下所示:

{"total_rows":2,"offset":0,"rows":[
{"id":"8e561dd15fd33acfc7c4502c58008c2a","key":["a"],"value":1403818824},
{"id":"8e561dd15fd33acfc7c4502c58008c2a","key":["b"],"value":1403818824},
{"id":"8e561dd15fd33acfc7c4502c58008c2a","key":["c"],"value":1403818824},
{"id":"8e561dd15fd33acfc7c4502c5800a212","key":["d"],"value":1403818700}
]}

最佳答案

我其实找到了一个更简单的方法。基本步骤是:

  1. 将每个单独的字母映射到日期
  2. 通过按键从所有日期数组中返回最大值来减少结果。

map 如下:

function(doc) {
var files = doc.args.report.updated_partitions;
var timestamp = doc.timestamp;

for (i=0; i<files.length; i+= 1){
var file_name = files[i];
emit(file_name, timestamp);
}
}

减少看起来像:

function(key, value, reduce) {
return (Math.max.apply(null, value))
}

结果将是每个字母的唯一键,并以所有文档的最新日期作为值。

此用途的用例是每个沙发文档都有已修改的文件列表以及修改发生的日期,但您想知道每个文档的最新修改日期。

关于javascript - 使用 View 在 couchDB 中的文档之间返回唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24705394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com