Filter 数据库查询中的筛选器、总和和div

Filter 数据库查询中的筛选器、总和和div,filter,rethinkdb,Filter,Rethinkdb,如何将这两个查询连接在一起。。。我的意思是在一定时间内获取CTR…我尝试了不同的方法来解决它,但找不到任何方法在NDB中编写查询 **r.expr({total_page_position:r.table('test_pagol')('position').sum(), total_page_load: r.table('test_pagol')('page').sum()}).merge({CRT: r.row('total_page_load').div(r.row('total_page_

如何将这两个查询连接在一起。。。我的意思是在一定时间内获取CTR…我尝试了不同的方法来解决它,但找不到任何方法在NDB中编写查询

**r.expr({total_page_position:r.table('test_pagol')('position').sum(), total_page_load: r.table('test_pagol')('page').sum()}).merge({CRT: r.row('total_page_load').div(r.row('total_page_position'))**


**r.table("test_pagol").filter(
    (r.row["timestamp"] >= 1429617902988)
    & (r.row["timestamp"] >= 1429617922119))**

您可以使用
map
reduce
命令:

r.table("test_pagol").filter(
    r.row("timestamp").ge(1429617902988)
    .and(r.row("timestamp").le(1429617922119))
).map({
    'total_page_position': r.row('position'),
    'total_page_load': r.row('page')
}).reduce(function(left, right) {
    return {
        'total_page_position': left('total_page_position').add(right('total_page_position')),
        'total_page_load': left('total_page_load').add(right('total_page_load'))
    }
}).merge({
    'CRT': r.row('total_page_load').div(r.row('total_page_position'))
})
有关
地图的更多信息
: 有关减少的更多信息:


(一个不相关的注意事项:如果您想让这个查询更快,您可以在
时间戳
字段上创建一个索引,并将
过滤器
替换为
之间的(14296179029881429617922119,{index:“timestamp”,rightbund=“closed”}
,请参见)

我正在使用javascript,它显示“TypeError:无法读取未定义”的属性“position”,我将代码更改为JavaScript。(在JS中,访问文档字段时需要使用括号而不是方括号,而不是=ge)现在显示…服务器错误:RqlRuntimeError:预期的类型函数,但找到的数据:{“total_page_load”:5872,“total_page_position”“:20329}in:………..啊,对不起,我的查询实际上是错误的,因为我没有使用
映射中筛选器中的文档。我将其更改为map reduce查询,该查询通过使用缩减函数一次计算两个总和。希望它现在起作用。