2

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

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

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

4

2 回答 2

1

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

于 2016-06-25T07:13:05.490 回答
0

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

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

于 2017-02-09T10:21:47.863 回答