【问题标题】:Horizon client library: is group-by doable?Horizo​​n 客户端库:分组是否可行?
【发布时间】:2017-02-10 00:31:58
【问题描述】:

我正在使用 Horizo​​n 后端和 reactjs 前端实现简单的 webapp。我需要获取按特定字段分组的集合(表)。然后我需要按另一个字段对每个减少进行排序,并将每次减少中的记录限制为 1。返回我需要的 Reql 查询:

r.db('reporter').table('reports')
  .group('project_name')
  .orderBy(r.desc('time_created'))
  .limit(1)

我在文档(http://horizon.io/api/collection/)中没有找到相关的方法(组)。我知道我可能误解了 Collection 对象的角色 - 根据我目前的理解,它是 rethinkdb 表的直接代理,并且表上可用的所有操作都应该在集合上可用 - 我错了吗?我需要实现中间层来获得这种行为吗?

【问题讨论】:

    标签: javascript rethinkdb horizon


    【解决方案1】:

    Horizo​​n API 比 RethinkDB API 更受限制。集合上定义的唯一方法是http://horizon.io/api/collection/ 中列出的方法。如果您需要更复杂的行为,您可以在 NodeJS 应用程序中嵌入 Horizo​​n,并定义一个自定义端点来发出您想要的任何 ReQL 查询:http://horizon.io/docs/embed/

    【讨论】:

    • 您是否知道是否有任何扩展集合 API 的计划,或者这是否受设计限制?
    • 可能会添加更多操作,并且有计划让第三方添加他们自己的插件系统,但它的意图是比 ReQL 小得多。
    【解决方案2】:

    您可以使用 rxjs groupBy 在前端执行此操作,因为 Horizo​​n.io 返回 rxjs observables。

    https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/groupby.md

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-21
      • 1970-01-01
      • 2020-12-16
      • 2018-11-17
      • 1970-01-01
      • 2010-09-14
      相关资源
      最近更新 更多