RethinkDb:在给定时间戳之前获取X条目

时间:2015-06-26 00:05:12

标签: javascript database time rethinkdb

我想用时间戳查询我的RethinkDB,然后获取此时间戳之前的第一个X条目。

到目前为止我尝试的是以下内容:

r.db('deepstream').table('chat').filter(function (message) {
    return message("_d")("timestamp").lt(<timestamp>);
}).limit(X);

这给了我在给定时间戳之前的X条目,但不是我想要的顺序。

我的参赛作品如下:

{
  "_d": {
    "id":  "chat/ibcta7zt-5k6ldeay2xr" ,
    "message":  "sadas" ,
    "timestamp": 1435274339341 ,
    "user":  "Emil"
  } ,
  "_v": 1 ,
  "ds_id":  "ibcta7zt-5k6ldeay2xr"
}

“ds_id”的前半部分是base64编码的时间戳,如果可能有任何帮助。

如何查询数据库以确保我得到的结果是先前的X消息,而不仅仅是之前到达的X随机消息?

1 个答案:

答案 0 :(得分:1)

根据时间戳按降序排序数据库解决了我的问题。

r.db('deepstream').table('chat').orderBy({index: r.desc('ds_id')})
  .filter(function (message) {
     return message("_d")("timestamp").lt(<timestamp>);
  }).limit(X);