【问题标题】:Oracle SODA - How to sort on created using REST?Oracle SODA - 如何对使用 REST 创建的进行排序?
【发布时间】:2021-01-27 06:00:42
【问题描述】:

我不知道如何在 id 字段(例如 created 或 lastModified )上将 $orderby 与 SODA 一起使用。我直接将 SODA 用于 REST 而不是其他项目。

排序语法为:

{
  $orderby: {
    path: 'created',
    datatype: 'date',
    order: 'desc'
  }
}

我也试过了:

{
    "$orderby": {
        "$fields": [{
                
            "path": "created",
            "datatype": "date",
            "order": "desc"
        }],
        "$scalarRequired": true
    }
}

并用 $id: 'created' 替换路径(因为您可以在过滤器规范中使用它来访问非文档元数据。但没有任何东西可以正常订购。

在创建对象时没有将创建的字段放入我的对象中(这违背了拥有这些字段的目的)如何在元数据字段上使用 orderby?

【问题讨论】:

    标签: oracle oracle-soda


    【解决方案1】:

    来自 SODA 开发团队的 Max。我不是 100% 确定您所说的“id 字段”是什么意思。看起来您的意思是由 SODA 自动维护的“创建于”和“最后修改”的文档组件,对吧?如果是这样,我们不支持这些上的 orderbys(尽管它可以作为增强功能添加)。

    到目前为止,正如您在帖子中提到的,最好的选择是在您的 JSON 文档内容中创建一个字段并将其设置为 ISO8601 格式的时间戳值(例如 2020-10-13T07:01:01)。然后,您可以对这样的字段进行排序(数据类型为“日期时间”)。如果需要更多详细信息,请告诉我。

    在 SODA REST 中,当您列出集合内容时,您可以指定 since=timestamp 和 until=timestamp 查询参数。这将为您提供最后修改时间戳大于“since”且小于或等于“until”的所有文档。

    例子:

    http://host:port/ords/scott/soda/latest/myColl?=2020:01:01T00:00:00&直到=2021: 01:01T00:00:00

    作为此操作的一部分,SODA 会自动在“最后修改”上添加 orderby。不确定这是否对您有用,因为这只是为了列出集合中的所有文档(例如,您不能将它与 QBE 结合使用)。因此,如果这不能满足您的需求,现在最好的选择是在文档内容中显式添加“修改”字段之类的内容,然后对其进行排序。

    【讨论】:

      猜你喜欢
      • 2021-09-19
      • 1970-01-01
      • 1970-01-01
      • 2012-07-18
      • 2021-10-11
      • 1970-01-01
      • 1970-01-01
      • 2016-11-02
      • 1970-01-01
      相关资源
      最近更新 更多