Oracle SODA - 如何对使用 REST 创建的进行排序?

Oracle SODA - How to sort on created using REST?

我不知道如何在 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?

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

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

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

示例:

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

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