【问题标题】:cloudant Db sorting function is not working as it expected via using unix time stamp通过使用 unix 时间戳,cloudant Db 排序功能无法按预期工作
【发布时间】:2017-11-07 11:47:03
【问题描述】:

我正在使用带有节点红色应用程序的“cloudant”数据库。并通过使用 node-red 应用程序存储所有数据。我将 random() 字符串用于 cloudant 文档“_id”字段,一些文档包含系统生成的“_id”字段,而一些文档是 random() 生成的字符串作为“_id”。所有具有“createdAt”字段的记录,该字段存储“Unix Timestamp”,我通过 javscript 日期对象获取,即“new Date().getTime()”。

我通过使用以下设计文档创建了 CloudantDB 排序索引,即

{
    "ddoc": "_design/629170abb04bb25e13d65322e59141dcc5d16317",
    "name": "customIndex",
    "type": "json",
    "def": {
        "fields": [{
            "createdAt": "asc"
        }, {
            "page_id": "asc"
        }, {
            "task_id": "asc"
        }, {
            "_id": "asc"
        }]
    }

并使用以下查询来获取结果,即

{
"selector": {
    "createdAt": {
        "$gt": 0
    },
    "$or": [{
        "task_id": {
            "$in": ["1_0"]
        }
    }, {
        "page_id": 1
    }],
    "table": "details"
},
"sort": [{
    "createdAt": "desc"
}],
"limit": 20 , "bookmark": null}

具有以下 cloudantDb 端点

https://30175cba-a69e-4ff0-9a79-788abcf0f585-bluemix.cloudant.com/master_table/_find

我没有遗漏什么,但 cloudantDB 不会按应有的方式对记录进行排序,有时会返回随机记录而不进行任何排序

我正在按照以下链接实现带有排序索引的 cloudantDb 查找查询,即

https://developer.ibm.com/clouddataservices/cloudant-query-new/

感谢任何形式的帮助或建议。

提前致谢。

【问题讨论】:

    标签: sorting pagination ibm-cloud cloudant node-red


    【解决方案1】:

    Cloudant 记录是 JSON 文档,JSON 规范不支持 JavaScript 日期类型。你不是唯一遇到这个问题的人。请参阅 JasonSmith 的回答 https://stackoverflow.com/a/4815878/1459475

    【讨论】:

    • 对了。 new Date().getTime() 实际上返回一个数字。我无法访问你的数据库,所以这对我来说很难测试。再次查看此内容后,我认为您的问题可能是您手动创建了该设计文档,并尝试针对它运行 Cloudant 查询选择器。不幸的是,这行不通。要运行 Cloudant Query 选择器,您还需要通过 Cloudant Query 创建索引。见console.bluemix.net/docs/services/Cloudant/api/…。希望这就是问题所在?
    • 感谢@brobes 的建议。我已经为选择器查询创建了 CloudantDb 索引,并且 CloudantDb 在运行上述查询时没有返回任何警告或错误。如果我缺少 Index,那么我认为 CloudantDb 肯定会返回一些警告或错误。
    • 好的,如果是这样的话,也许您需要熟悉一下 CouchDB 视图排序规则?它们控制索引的排序顺序,所以也许就这么简单? docs.couchdb.org/en/2.1.1/ddocs/views/…
    猜你喜欢
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 2018-03-17
    相关资源
    最近更新 更多