2014-12-23 51 views
0

任何方式,我可以得到RavenDB的每個Nth文檔?每一個項目RavenDB

我想是這樣的,在here所見:

Query<MyDoc, MyDoc_Index>().Where((x, i) => i % nStep == 0); 

我得到以下錯誤:

Could not understand how to translate '(i % 1000)' to a RavenDB query. Are you trying to do computation during the query? RavenDB doesn't allow computation during the query, computation is only allowed during index. Consider moving the operation to an index.

我沒有問題,如果添加一個我減少對我的索引不得不。謝謝!

回答

1

您是否嘗試過使用.Skip()方法?

MyDoc nthValue = session.Query<MyDoc, MyDoc_Index>().Skip(nStep-1).FirstOrDefault(); 
+0

我有,但它變成了一個醜陋的聚合查詢,如果你想獲得大集合的每一個第5個文件。 我想知道是否有某處語法糖。 – fgauna

+0

我會將此標記爲答案,因爲它似乎是實現此目的的唯一方法。我希望沒有人必須這樣做,因爲它引起的所有數據庫訪問。 – fgauna

+0

@fgauna:執行此操作時是否對數據進行排序?否則,你將無法控制返回的內容。每次執行時數據可能都不一樣。 –