i've seen questions similar this, none of answers ideal because they're either inefficient or don't work.
i have database table has following rows:
id feed datetime content
i need iterate on every item in table feed
example
(or other value; string) iteration needs ordered datetime
.
unfortunately can't in memory because there hundreds of thousands of entries single user.
i've tried modifying code found here , didn't make progress. i've adapted best answer here , error when run this;
print r.db('main').table('data').between([feedid, r.minval], [feedid, r.maxval], index="feedbytime").order_by(index="feedbytime").run(conn)
which throws error;
traceback (most recent call last): file "<stdin>", line 1, in <module> file "/usr/local/lib/python2.7/dist-packages/rethinkdb/net.py", line 196, in __str__ val_str = ', '.join(map(repr, self.items[:10])) typeerror: sequence index must integer, not 'slice'
if remove index="feedbytime"
between
, error instead;
rethinkdb.errors.reqlquerylogicerror: cannot order index 'feedbytime' after calling between on index 'id'
the index (feedbytime
) made so;
r.db('main').table('data').index_create("feedbytime", lambda x: [x["feed"], x["datetime"]]).run(conn)
any suggestions great, in advance.
your query has issue:
instead of
query = ( r.db('main').table('data') .between( [feedid, r.minval], [feedid, r.maxval], index="feedbytime" ) .order_by(index="feedbytime") .run(conn) )
try
query = ( r.db('main').table('data') .between( [feedid, r.minval], [feedid, r.maxval], index="feedbytime" ) .order('datetime') .run(conn) )
Comments
Post a Comment