return 来自 Fauna DB 的博客等的最新帖子的最佳方式是什么

What is the best way to return most recent posts from Fauna DB for a blog, etc

我正在使用 React 构建一个简单的自定义无头 CMS,以通过 API Gateway 和 Lambda 将数据保存在 Fauna 中。要在管理员中列出我的帖子,我想从我的 collection 中获取按日期值排序的数据。

当我创建一个新索引来执行此操作时,我希望获得与创建的默认索引中相同的 data/structure。但是,我发现它 return 只是在索引中明确定义的数据,没有任何键来描述存在的值。

我之前在没有上下文的情况下问过 并得到了很好的回应,但我想更广泛地了解在 Fauna 中实现这一目标的最佳和最有效的做法是什么。除了创建索引之外,我还没有发现对数据进行排序的方法。

这种默认行为对我来说是违反直觉的。似乎有一种更简单的方法可以以相反的顺序 return 数据。我很想知道为什么这是默认行为。我敢肯定,比我聪明得多的人有充分的理由将其合理化。感谢您的指导。

这确实是一个很好的理由。与许多其他数据库相比,FaunaDB 决定不允许 允许 你做低效的事情,以避免你遇到不愉快的意外。当您对数据库中的数据进行排序时,它要么使用索引,通常会发生以下两种情况之一:

  • 定义了一个索引,因为您知道您将要这样做,您关心性能并且考虑到了它。索引用于排序。
  • 您忘记了索引,或者您的数据太小以至于您不在乎,查询引擎仍将执行此操作,但将以非常低效的方式执行此操作。

如果您最终遇到第二种情况,您忘记了并且是在海量数据上执行此操作,那么您可能会遇到性能问题,如果该数据库是自动缩放和按需付费的话。 . 没问题.. 数据库应该可以处理但是因为它是现收现付的,所以会很贵。

排序也一样。也许数据库有一种巧妙的方法来反转排序顺序,但它也可能不使用索引并通过 运行 在整个数据集上做一些非常低效的事情,直到最后并开始以相反的顺序读取。

为避免令人讨厌的定价意外,如果不事先定义该索引,您可以做的大多数需要索引才能高效完成的事情都是不可能的。

这是您要找的答案吗?