gpt4 book ai didi

cloudant - 从 cloudant 查询获取最新(时间戳明智)值

转载 作者:行者123 更新时间:2023-12-03 06:29:13 29 4
gpt4 key购买 nike

我有一个 cloudant 数据库,其中每个文档如下所示:

{
"_id": "2015-11-20_attr_00",
"key": "attr",
"value": "00",
"employeeCount": 12,
"timestamp": "2015-11-20T18:16:05.366Z",
"epocTimestampMillis": 1448043365366,
"docType": "attrCounts"
}

对于给定的属性,有一个员工计数。正如你所看到的,我每天都有相同属性的记录。我正在尝试创建一个 View 或索引来为我提供此属性的最新记录。这意味着如果我在 2015 年 10 月 30 日插入一条记录,在 2015 年 11 月 10 日插入另一条记录,那么返回给我的只是时间戳为 2015 年 11 月 10 日的记录的员 worker 数。

我尝试过查看,但我得到的是每个属性的所有条目,而不仅仅是最新的。我没有查看索引,因为我认为它们没有预先计算。我将从客户端查询这个,因此预先计算它(就像 View 一样)很重要。

任何指导将不胜感激。谢谢

最佳答案

  1. 我创建了一个测试数据库,您可以在此处查看。只需确保当您将 JSON 文档插入 Cloudant(或 CouchDB)时,您的时间戳不是字符串,而是 JavaScript 数据对象:

    https://examples.cloudant.com/latestdocs/_all_docs?include_docs=true

  2. 我构建了一个像这样的搜索索引(将设计文档命名为“summary”,将搜索索引命名为“latest”):
    函数(文档){
    if ( doc.docType == "totalEmployeeCounts"&& doc.key == "div") {
    index("division", doc.value, {"store": true});
    index("timestamp", doc.timestamp, {"store": true});
    }
    }

  3. 下面的查询将仅返回每个部门的最新记录。请注意,限制值将应用于每个组,因此当 limit=1 时,如果有 4 个组,您将获得 4 个文档而不是 1 个。


    https://examples.cloudant.com/latestdocs/_design/summary/_search/latest?q=*:*&limit=1&group_field=division&include_docs=true&sort_field=-timestamp

关于cloudant - 从 cloudant 查询获取最新(时间戳明智)值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33833898/

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