首页 > 解决方案 > AppSync - 查询在日期范围内创建的所有项目?

问题描述

我正在尝试查询特定日期范围内的所有项目(具有 CreatedAt 和 UpdatedAt 的 AWS DateTime 字段)。例如,过去 48 小时。

例如,使用此架构:

type Note @model @searchable @auth(rules: [{ allow: owner }]) {
  id: ID!
  note: String
  createdAt: AWSDateTime

我可以使用例如搜索日期:

query {
  searchNotes(filter:{createdAt: { matchPhrasePrefix: "2018-12-27"}}) {
    items{
      id
        title
      createdAt
    }
  }
}

它返回所有与 UTC 时间匹配且带有该字符串前缀的注释。

从中,我必须使用 moment.diff() 或其他方法对自己进行排序。

我不确定是否有更好/更有效的方法来使用 AppSync 和 GraphQl 按日期和时间进行搜索/过滤?

谢谢你。

标签: elasticsearchgraphqlaws-appsyncaws-amplifyamplifyjs

解决方案


您可以使用此查询过滤 2 AWSDateTime

query {
  searchNotes(filter:{createdAt: { between: ["2018-12-27T00:00:00", "2019-01-27T00:00:00"]}}) {
    items{
      id
        title
      createdAt
    }
  }
}


推荐阅读