微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 couchdb 中发出按日期排序的最新数据

如何解决在 couchdb 中发出按日期排序的最新数据

这是视图

function (doc) { 
 DeltaTime = new Date(doc.resultTime);
 DeltaTime.setMilliseconds(DeltaTime.getMilliseconds()-doc.Timestamp);
 FinalDate= new Date(DeltaTime);
 doc.al.forEach(e => 
 emit([e.id16,e.pos.x,e.pos.y],// key
  {id:e.id16,pos:e.pos,m:e.m,resulttime:doc.resultTime,blink:e.blk,Timestap:doc.Timestamp,DeltaTime:DeltaTime,FinalDate:new Date(FinalDate.setMilliseconds(FinalDate.getMilliseconds()+e.blk))}) // value
)
 doc.tl.forEach(e => 
 emit([e.id16,e.pos.y ],t:e.t,FinalDate:new Date(FinalDate.setMilliseconds(FinalDate.getMilliseconds()+e.t))}) // value
)
}

当我使用 group_level=3 查询视图时,我得到如下内容

{"rows":[
{"key":["0x1d42",9.32,6.13,1.22],"value":{"id":"0x1d42",.......,"FinalDate":"2021-02-22T01:34:56.851Z"}},{"key":["0x1d42",15.32,12.13,...........,"FinalDate":"2021-02-22T09:29:29.649Z"}},20.32,21.13,.........,"FinalDate":"2021-02-22T10:29:31.311Z"}},"FinalDate":"2021-02-24T13:29:31.311Z"}},{"key":["0x3f1a",10.49,5.97,2.01],"value":{"id":"0x3f1a",........,"FinalDate":"2021-02-22T09:11:21.961Z"}},17.49,10.97,0.01],"FinalDate":"2021-02-22T11:11:22.061Z"}},]}

我有多个行可用于每个 ID。例如对于 id 0x1d42 我有四行。 但我想要一行包含当天最晚的时间,这意味着如果日期相同,那么我必须选择与最新时间相关的最新数据。

我希望输出类似于下面的内容

{"rows":[
{"key":["0x1d42",......,"FinalDate":"2021-02-22T10:29:31.311Z"}}
{"key":["0x1d42",.....,]}

我如何在 couchdb 中实现这一点?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。