Python 数据库getAll按日期排序,带索引
我见过类似的问题,但没有一个答案是理想的,因为它们要么效率低下,要么不起作用 我有一个包含以下行的数据库表:Python 数据库getAll按日期排序,带索引,python,python-2.7,rethinkdb,Python,Python 2.7,Rethinkdb,我见过类似的问题,但没有一个答案是理想的,因为它们要么效率低下,要么不起作用 我有一个包含以下行的数据库表: id提要日期时间内容 我需要迭代表中的每一项,feed是example(或任何其他值;始终是字符串),但迭代需要按datetime排序 不幸的是,我不能在内存中完成,因为一个用户可能有成千上万个条目 我试图修改找到的代码,但没有取得任何进展。我还修改了最佳答案,运行时出现错误 打印r.db('main')。表格('data')。在([feedid,r.minval]、[feedid,r.
id提要日期时间内容
我需要迭代表中的每一项,feed
是example
(或任何其他值;始终是字符串),但迭代需要按datetime
排序
不幸的是,我不能在内存中完成,因为一个用户可能有成千上万个条目
我试图修改找到的代码,但没有取得任何进展。我还修改了最佳答案,运行时出现错误
打印r.db('main')。表格('data')。在([feedid,r.minval]、[feedid,r.maxval]、index=“feedByTime”)。按(index=“feedByTime”)。运行(conn)
它抛出了这个错误
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/local/lib/python2.7/dist packages/referencedb/net.py”,第196行,在__
val_str=','.join(映射(repr,self.items[:10]))
TypeError:序列索引必须是整数,而不是“切片”
如果我从之间的中删除index=“feedByTime”
,我会得到这个错误
referencedb.errors.ReqlQueryLogicError:在对索引“id”进行调用之后,无法按索引“feedByTime”进行订购。
索引(feedByTime
)是这样制作的
r.db('main')。表('data')。索引_创建(“feedByTime”,lambda x:[x[“feed”],x[“datetime”]])。运行(conn)
任何建议都很好,请提前感谢。您的查询有问题:
而不是
query = (
r.db('main').table('data')
.between(
[feedid, r.minval],
[feedid, r.maxval],
index="feedByTime"
)
.order_by(index="feedByTime")
.run(conn)
)
试一试
您的查询有一个问题:
而不是
query = (
r.db('main').table('data')
.between(
[feedid, r.minval],
[feedid, r.maxval],
index="feedByTime"
)
.order_by(index="feedByTime")
.run(conn)
)
试一试
在我看来,那个代码是正确的。你正在运行最新版本的Python驱动程序吗?@mlucy是的,一切都在最新版本上。我尝试过的任何东西都不起作用,我一定是遗漏了什么。这个错误看起来可能是Python驱动程序中的错误。我会在GitHub问题跟踪器上打开一个bug:是的,我相信可能是这样。我编辑了Python驱动程序以添加一个异常,该异常“修复”了它。我会打开一个bug报告。似乎它只需要以更友好的方式处理该异常,而不是停止整个查询的运行。在您发表评论之前,我实际上没有考虑过驱动程序错误,所以谢谢您。:)在我看来,那个代码是正确的。你正在运行最新版本的Python驱动程序吗?@mlucy是的,一切都在最新版本上。我尝试过的任何东西都不起作用,我一定是遗漏了什么。这个错误看起来可能是Python驱动程序中的错误。我会在GitHub问题跟踪器上打开一个bug:是的,我相信可能是这样。我编辑了Python驱动程序以添加一个异常,该异常“修复”了它。我会打开一个bug报告。似乎它只需要以更友好的方式处理该异常,而不是停止整个查询的运行。在您发表评论之前,我实际上没有考虑过驱动程序错误,所以谢谢您。:)