【问题标题】:FaunaDB: How to get documents created in the last hour?FaunaDB:如何获取最近一小时内创建的文档?
【发布时间】:2020-12-25 21:18:16
【问题描述】:

如何获取最近一小时内创建的所有文档?

我找到了Paginate()参数ts,但它只返回之前创建的文档,而不是之后创建的文档。

【问题讨论】:

    标签: faunadb


    【解决方案1】:

    奇怪,这段代码:

    Paginate(Documents(Collection("fweets")), {
      events: true,
      after: Time("2020-05-22T19:12:07.121247Z")
    })
    

    应该返回给定时间戳之后的事件,您在尝试运行此类代码时遇到问题吗?

    该结果中的事件将包括创建删除事件。另一种方法是在“ts”上创建索引,但这也会为您提供在给定时间戳之后更新的文档。

    Paginate(
        Range(
          Match(Index("fweets_after_ts")),
          ToMicros(Time("2020-05-22T19:12:07.121247Z")),
          null
        )
      )
    

    一种流行的方法是获取这些创建/更新的文档的事件,然后在该结果之上再次运行带有事件的 Pagiante。您可以通过将其包装在地图中+事件分页来做到这一点:true。

    Map(Paginate(
        Range(
          Match(Index("fweets_after_ts")),
          ToMicros(Time("2020-05-22T19:12:07.121247Z")),
          null
        )
      ),
      Lambda(['ts', 'ref'], Paginate(Var('ref'), {events: true, after: Time("2020-05-22T19:12:07.121247Z")}))
    )
    

    【讨论】:

    • 谢谢!!!抱歉,我为这么愚蠢的问题感到很惭愧,但我昨天开始学习动物数据库 :-) 我的错误是我尝试了TimeSubtract(Now(), 10, 'minutes'),而不是ToMicros(TimeSubtract(Now(), 10, 'minutes'))
    • 没问题 :)。这里有一个活跃的社区,如果您正在寻找有关如何开始的进一步帮助:forums.fauna.com
    猜你喜欢
    • 2022-12-09
    • 2020-07-21
    • 2016-08-28
    • 1970-01-01
    • 2012-10-30
    • 2020-06-03
    • 2021-01-12
    • 2012-09-04
    • 1970-01-01
    相关资源
    最近更新 更多