0

我有一个带有“时间戳”的表格“帖子”。

现在,我希望所有拥有超过 1 个帖子的用户获取除最新帖子之外的所有帖子。

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

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

我可以通过做得到特定用户的最后一篇文章

r.table("post")
.filter({userId: 'xxx'})
.max('timestamp')

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

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

有什么建议我如何将所有这些结合在一起?

4

1 回答 1

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].

于 2016-04-04T13:51:30.247 回答