Как получить базу данных и имя таблицы из запроса ReQL
Предположим, у меня есть следующий запрос RethinkDB (как напечатано в iPython):
In [32]: data_to_archive
Out[32]: <RqlQuery instance: r.db('sensor_db').table('sensor_data').filter(lambda var_2: (r.row['timestamp'] < (r.now() - r.expr(259200.0)))) >
Запрос находится в базе данных sensor_db
и стол sensor_data
Как видно из распечатки. Есть ли способ, которым я могу получить эту информацию в качестве атрибута RqlQuery
пример?
(Причина, по которой я хочу сделать это, состоит в том, чтобы написать краткий код: запрос, база данных и таблица в настоящее время все передаются в качестве входных аргументов функции, но последние два фактически содержатся в первом).
1 ответ
Решение
Не уверен, что он существует. Между тем, маленькое уродство никому не повредило, кроме моей мамы:
In [57]: mom = lambda q, fn: re.search(fn + "\(\'(.*?)\'\)", str(q)).group(1)
In [58]: rql = r.db("foo").table('bar').filter(lambda x: x)
In [59]: mom(rql, 'db')
Out[59]: 'foo'
In [60]: mom(rql, 'table')
Out[60]: 'bar'