如何指定我订购的字段?

时间:2016-04-27 22:19:58

标签: javascript node.js rethinkdb

我有一个如下所示的RQL查询:

r.table('builds')
    .orderBy(r.desc('createdDate'))
    .limit(100)
    .eqJoin('userId', r.table('users'))
    .run(connection)

buildsusers都有createdDate字段。我希望结果按createdDate表的builds排序,但实际上我按照users表的顺序获取结果。

如何指定我要使用buildscreatedDate

2 个答案:

答案 0 :(得分:0)

加入之后,您应该拥有一个“正确的”'包含您可以操作的用户的对象。类似的东西:

r.table('builds')
 .eqJoin('userId', r.table('users'))
 .orderBy(r.desc('right.createdDate'))
 .limit(100)
 .run(connection)

答案 1 :(得分:0)

我的问题有些清楚解释in the RethinkDb docs。查找涉及without()

的示例

我的查询最终看起来像这样:

r.table('builds')
    .eqJoin('userId', r.table('users'))
    .without({right: 'createdDate'})
    .zip()
    .orderBy(r.desc('createdDate'))
    .limit(100)
    .run(connection)

以下似乎也有效,但不建议使用ordered

r.table('builds')
    .orderBy(r.desc('createdDate'))
    .eqJoin('userId', r.table('users'), {ordered: true})
    .limit(100)
    .run(connection)

虽然这有效,但我并不完全明白。任何其他解释或答案都是完全受欢迎的。