如何选择具有最大值的记录
How to select record with max value?
我有以下视图:
function (doc, meta) {
if (meta.type == "json")
if ( doc.id
&& doc.id.root.indexOf("1.2.250.1.199.16.1.1") == 0
&& doc.setId
&& doc.versionNumber)
{
emit(doc.setId.extension, parseInt(doc.versionNumber.value))
}
}
返回以下结果集:
Key Value
"4816f76e-33f9-456a-9e23-961799883994" 1
wound2QualificationRev1
"4816f76e-33f9-456a-9e23-961799883994" 2
wound2QualificationRev2
现在我想将结果集限制在最大值上,只返回
Key Value
"4816f76e-33f9-456a-9e23-961799883994" 2
wound2QualificationRev2
我该如何修改视图?使用自定义减少方法?
编辑1:请注意,此处显示的结果集是部分的。我不能使用orderby和limit来实现我的目标。
我不知道Couchbase,但写一些类似的东西怎么样
emit(parseInt(doc.versionNumber.value),doc.setId.extension)
然后用查询
?descending=true&&limit=1
您也可以使用map reduce:如何使用CouchDB中的map reduce计算最大值?,或者考虑N1QL的使用,它实现了MIN和MAX SQL查询
好吧对@Leogiciel的Max reduce函数的赞扬,我终于找到了解决方案。首先,视图定义保持不变。解决方案是使用Max reduce函数的此实现,最重要的是,使用查询参数分组和reduce。
初始结果集,此处显示为原始Json:
{"total_rows":9,"rows":[
{"id":"wound1Image1","key":"0a41d087-1a7f-4d9f-8df9-83d0deb2566c","value":1},
{"id":"wound2QualificationRev1","key":"4816f76e-33f9-456a-9e23-961799883994","value":1},
{"id":"wound2QualificationRev2","key":"4816f76e-33f9-456a-9e23-961799883994","value":2},
{"id":"wound2Image3","key":"65ff979a-e1e0-43d4-a24f-a3ee0cc8b67c","value":1},
{"id":"wound2Image1","key":"69f29cf8-3ee7-4681-937d-d465edc9bb16","value":1},
{"id":"wound1Image2","key":"76ab9a67-a17b-4fc6-a105-60b57e971d4f","value":1},
{"id":"wound1Synthesis","key":"bc1a7ec0-30d7-4493-8dd9-dcf6d0b48cc9","value":1},
{"id":"wound1Qualification","key":"cb375a5f-e07d-449a-ab13-60dba16a0323","value":1},
{"id":"wound2Image2","key":"dfb5e7eb-6192-46ba-84d2-0e5996536930","value":1}
]
}
具有以下查询参数:
?group=true&reduce=true
返回正确的结果集:
{"rows":[
{"key":"0a41d087-1a7f-4d9f-8df9-83d0deb2566c","value":1},
{"key":"4816f76e-33f9-456a-9e23-961799883994","value":2},
{"key":"65ff979a-e1e0-43d4-a24f-a3ee0cc8b67c","value":1},
{"key":"69f29cf8-3ee7-4681-937d-d465edc9bb16","value":1},
{"key":"76ab9a67-a17b-4fc6-a105-60b57e971d4f","value":1},
{"key":"bc1a7ec0-30d7-4493-8dd9-dcf6d0b48cc9","value":1},
{"key":"cb375a5f-e07d-449a-ab13-60dba16a0323","value":1}, {"key":"dfb5e7eb-6192-46ba-84d2-0e5996536930","value":1}
]
}
相关文章:
- 在Javascript数组中查找绝对最大值
- Html5输入属性的默认值,如最小值、最大值、大小等
- 按最大值获取数组索引
- 识别滑块范围的最小值和最大值
- 如何在最大值之前的某个点停止范围滑块
- 访问Highcharts系列的最小/最大值:afterSetExtremes不会激发
- 如何在拖动后获得图表的最小值和最大值放大高图表
- AngularJs:在数字输入字段中设置验证的条件最小值和最大值
- HTML5范围滑块最小值和最大值
- 如何仅在存在最小值和最大值时才显示错误消息
- 在 JavaScript 事件中添加最小值和最大值
- 从 JavaScript 中的数组中获取最大值和最小值
- 获取整数对象属性名称的最小值和最大值
- 高图表 - 在缩放重置中设置最大值和最小值
- Java 脚本 设置日期的最小值和最大值属性
- 使用javascript动态更改select中的最大值
- 如何设置jQuery微调器的最大值和最小值
- 当达到最小值和最大值时,防止在输入中显示额外的文本
- 在“跨记录”中查找XML属性的最大值
- 如何选择具有最大值的记录