Проблема с получением данных из таблицы Rethinkdb в определенном порядке

Команда «rdb.table('newnmeadata').orderBy('nos')» отлично работает в обозревателе данных RethinkDB. «Нет» — это первичный ключ. Нет проблем с получением данных (для канала сокета) с использованием «.with_fields», но RethinkDB обслуживает данные в любом старом порядке. Я пробовал много-много итераций ниже, но теперь я в тупике?

import rethinkdb as r
rdb = r.RethinkDB()
rdb.connect('localhost', 28015).repl()

while True:

    cursor = rdb.table('newnmeadata').orderBy('nos').run()
    for document in cursor:

        msg = (str(document)[10:-13])
        print(msg)

Выдает следующую ошибку:

Python 3.8.1 (C:/Program Files (x86)/Python/python.exe) %Run datastream.py Traceback (последний последний вызов): Файл «C:\Program Files (x86)\Python\MyPy\datastream. py", строка 7, в курсоре = rdb.table('newnmeadata').orderBy('nos').run() AttributeError: объект Table не имеет атрибута orderBy


person Bertie Bravage    schedule 12.01.2020    source источник


Ответы (2)


Спасибо, order_by работал на питоне :) Моя команда:

QueryData = r.db('myDB').table('Posts').order_by(r.desc('Data_Time')).run()

работает Хорошо Еще раз спасибо :)

person Regimantas Baublys    schedule 16.12.2020
comment
Вместо того, чтобы благодарить себя несколько раз, как подросток в кризисе среднего возраста, вы можете добавить больше объяснений к своему решению (как это решает проблему ОП). Итак, любой, кто увидит этот пост, или любой, кто столкнется с той же проблемой, что и OP, может легко найти решение. Потому что, вы знаете... некоторые из нас прокрастинаторы. - person Willy satrio nugroho; 16.12.2020

Это должно быть order_by для драйвера python rethinkdb (и orderBy для javascript). Как это:

cursor = rdb.table('newnmeadata').order_by('nos').run()
person inf581    schedule 12.01.2020
comment
Да, это сработало - большое спасибо. Массивная задержка при сортировке для order_by — не знаете, что можно сделать, чтобы исправить это? 'nos' - это первичный ключ, и данные были загружены в таблицу в таком порядке, то есть 1.....n, но они не хранятся таким образом, как может показаться - странно? - person Bertie Bravage; 12.01.2020
comment
Сортировка без индекса требует, чтобы сервер rdb хранил всю последовательность в памяти, поэтому попробуйте использовать сортировку с индексом, например r.table('newnmeadata').order_by(index='nos'), так должно быть лучше. - person inf581; 13.01.2020
comment
Так намного быстрее - спасибо. Интересно, что мне нужно было только поле «данные», я добавил фильтр with_fields, но он должен идти после order_by, а не раньше, чем вы получите rethinkdb.errors.ReqlQueryLogicError: Indexed order_by может быть выполнен только для TABLE или TABLE_SLICE в: - логическом достаточно, я полагаю - person Bertie Bravage; 13.01.2020