Rethinkdb过滤早期的查询

时间:2016-04-01 17:58:34

标签: rethinkdb rethinkdb-javascript

我有一张桌子"帖子"使用"时间戳"。

现在我希望所有发帖超过1条的用户获得除最新帖子之外的所有帖子。

使用此查询,我可以成功检查有超过1个帖子的用户:

r.table("post")
  .group('userId')
  .count()
  .ungroup()
  .filter(r.row("reduction").gt(1))

我可以通过

获取特定用户的最后一篇文章
r.table("post")
.filter({userId: 'xxx'})
.max('timestamp')

现在我需要将它们联系在一起,然后将每行的时间戳与最大值('时间戳')进行比较,看看它们是否不相等。以下是我所拥有的,但它显然是错误的

.filter(r.row('timestamp').ne(r.row('timestamp').max('timestamp')('timestamp')))

我是如何将所有这些结合在一起的?

1 个答案:

答案 0 :(得分:1)

这样的事情应该有效:

r.table('post')
.group({
    index: 'userId'
})
.ungroup()
.filter(function(doc) { 
    return doc('reduction').count().gt(1)
})
.group('group')('reduction')
.nth(0)
.orderBy(
    r.desc('timestamp')
).skip(1)

预留语法错误;我使用python构建了这个查询,然后将其转换为javascript。特别不确定.nth(0)部分,从未在javascript中使用它。在python中,它只是[0]