RethinkDB查询:如何选择日期范围内的低音

时间:2019-07-19 18:34:26

标签: rethinkdb

给出一个称为Alerts的表和一个名为array的数据库 日期属性为“历史”的对象的分类 在该日期属性的日期范围内?

使用以下查询,

r.db("database").table("alerts").pluck("history").limit(10000)

我得到类似以下的内容

{
    "history": [
        {
          "text": "text1" ,
          "updateTime": Thu Jun 20 2019 01:29:47 GMT+00:00 ,
         },
         {
           "text": "text2" ,
           "updateTime": Thu Jun 20 2019 01:24:59 GMT+00:00 ,
          }, 
     ]
}
{
    "history": [
        {
          "text": "text3" ,
          "updateTime": Thu Jun 20 2018 01:29:47 GMT+00:00 ,
         },
         {
           "text": "text4" ,
           "updateTime": Thu Jun 20 2018 01:24:59 GMT+00:00 ,
          }, 
     ]
}

我怎样才能拔出名为history的子对象,并且只返回updateTime属性上特定范围内的history。  例如从2009年2月2日到2009年3月3日

1 个答案:

答案 0 :(得分:0)

您需要根据时间范围进行过滤,并对嵌套对象使用pluck。这是一些官方文档中有关如何执行此操作的示例

r.table("users").filter(function (user) {
    return user("subscriptionDate").during(
        r.time(2012, 1, 1, 'Z'), r.time(2013, 1, 1, 'Z'));
}).run(conn, callback);

来源:https://www.rethinkdb.com/api/javascript/filter/

r.table('marvel').pluck({'abilities' : {'damage' : true, 'mana_cost' : true}, 'weapons' : true}).run(conn, callback)

来源:https://www.rethinkdb.com/api/javascript/pluck/