我在Rethinkdb上执行以下查询:
r.table('skydata').filter(r.row("DeviceID").eq("JBAnFrdlbkcO").and(r.row("TS").ge(0)).and(r.row("TS").le(143556949)) ).orderBy("TS")
直接在他们网站上的Data Explorer上运行并返回结果时,它工作得很好。但是,当我在Python程序中进行相同的查询时,我什么都没得到。我写的查询是:
records = rdb.table('skydata').filter( (rdb.row['DeviceID'] == 'JBAnFrdlbkcO') & (rdb.row['TS'] >= '0') & (rdb.row['TS'] <= '143556949') ).order_by('TS').run(conn)
此处返回的records
为空。我认为这两个是等价的。我还尝试直接向服务器发送JS命令:
records = rdb.js("r.table('skydata').filter(r.row('DeviceID').eq(%s).and(r.row('TS').ge(%s)).and(r.row('TS').le(%s)) ).orderBy('TS')" % (deviceid, time_start, time_end) ).run(conn)
但它说:r is not defined
我真的不知道为什么会这样。如果有人能提供帮助我真的很感激。感谢。
答案 0 :(得分:0)
正如讨论中所提到的,不应引用查询中的数字,除非它们是字符串。取消引号以使其有效。