gpt4 book ai didi

rethinkdb: "RqlRuntimeError: Array over size limit"即使使用 limit()

转载 作者:行者123 更新时间:2023-12-03 07:02:55 28 4
gpt4 key购买 nike

我正在尝试访问按“日期”键排序的表中恒定数量的最新文档。请注意,不幸的是,日期是被实现的(不是由我......),使得该值设置为字符串,例如“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)

最终出现同样的错误。所以,我的问题是:

  1. 如何按日期获取恒定数量的最新文档?

  2. 是否可以通过基于字符串的日期字段进行排序?这个问题和我的第一个问题有关系吗?

最佳答案

此处出现错误的原因是 orderBylimit 之前进行评估,因此它对内存中超出数组限制的整个表进行排序。解决这个问题的方法是使用和索引。尝试执行以下操作:

table.indexCreate("date")
table.indexWait()
table.orderBy({index: r.desc("date")}).limit(50)

这应该与您在那里的内容相同,但使用索引,因此不需要将整个表加载到内存中。

关于rethinkdb: "RqlRuntimeError: Array over size limit"即使使用 limit(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21102344/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com