Запрос Rethinkdb не работает

Я делаю следующий запрос на 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 Я действительно понятия не имею, почему это так. Я был бы очень признателен, если бы кто-нибудь мог помочь. Спасибо.


person J Freebird    schedule 26.06.2015    source источник
comment
Во втором запросе должен быть заключен в кавычки ноль? Числа, вероятно, должны быть числовыми литералами, если только эти поля не содержат строковые числа.   -  person deontologician    schedule 26.06.2015
comment
@deontologician Большое спасибо! Это должны быть% d, а не строки ... Это решило мою проблему.   -  person J Freebird    schedule 26.06.2015


Ответы (1)


Итак, как упоминалось в обсуждениях, числа в запросе не следует заключать в кавычки, если они не являются строками. Убрать кавычки с цифр должно заставить его работать.

person J Freebird    schedule 09.07.2015