2014-01-13 90 views
3

我試圖訪問由「日期」鍵排序的表的最新文檔的常量數量。請注意,不幸的是,該日期已實現(不是由我......),以便將該值設置爲字符串,例如「2014-01-14」,或有時「2014-01-14 22:22:22」 。使用下面的查詢時,我得到一個"RqlRuntimeError: Array over size limit 102173"錯誤消息:rethinkdb:「RqlRuntimeError:數組超過大小限制」即使使用限制()

r.db('awesome_db').table("main").orderBy(r.desc("date")) 

我試圖通過指定一定的限度來克服這個問題,因爲現在我只需要最新的50:

​​

以相同的錯誤結束。所以,我的問題是:

  1. 我怎樣才能得到一個恆定數量的最新文件的日期?

  2. 是否可以通過基於字符串的日期字段進行排序?這個問題與我的第一個問題有關嗎?

回答

3

你在這裏得到一個錯誤的原因是limit所以訂單內存整個表是在陣列限制之前的orderBy被評估。解決這個問題的方法是使用和索引。試着做以下幾點:

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

這應該是等同於你有什麼存在,但使用一個索引,因此不需要加載整個表到內存中。