我正在尝试访问由“date”键排序的表的常量数量的最新文档。请注意,遗憾的是,日期已经实现(不是由我...),以便将值设置为字符串,例如“2014-01-14”,或者有时候“2014-01-14 22:22:22” 。使用以下查询时,我收到"RqlRuntimeError: Array over size limit 102173"
错误消息:
r.db('awesome_db').table("main").orderBy(r.desc("date"))
我试图通过指定一个常量限制来克服这个问题,因为现在我只需要最新的50:
r.db('awesome_db').table("main").orderBy(r.desc("date")).limit(50)
以相同的错误结束。所以,我的问题是:
如何按日期获得一定数量的最新文件?
是否可以通过基于字符串的日期字段进行排序?这个问题与我的第一个问题有关吗?
答案 0 :(得分:3)
此处出现错误的原因是orderBy
在limit
之前得到了评估,因此它会在内存中对整个表进行排序,这超出了数组限制。解决这个问题的方法是使用和索引。尝试执行以下操作:
table.indexCreate("date")
table.indexWait()
table.orderBy({index: r.desc("date")}).limit(50)
这应该等同于你所拥有的但使用索引,因此不需要将整个表加载到内存中。
答案 1 :(得分:0)
此代码是决策问题。
ro:= r.RunOpts {ArrayLimit:500000}
r.DB(“ wrk”)。Table(“ log”)。Run(sessionArray [0], ro )
答案 2 :(得分:0)
//此代码适用于Python r.db('awesome_db')。table(“ main”)。run(sesion,r.runOpts {arrayLimit:500000})