2012-04-04 49 views
6

我知道,通過REST API,可以指定「限制」參數(例如?極限= 5),以限制結果的數量從一個給定的視圖返回在CouchDB中。使用「限制」在CouchDB中查看地圖功能參數

我的問題是是否有一種方法可以在視圖內部的map函數中執行此操作......?

+3

你能提供更多的信息嗎?您想做什麼? – 2012-04-04 19:22:16

回答

5

對您的具體問題的答案是「否」。

地圖功能被應用於每一個文檔中的數據庫和減少功能,如果定義的話,被施加到每一個減少的結果。認爲預先計算。

您在URL中提供的查詢參數應用到B +樹,你的MapReduce功能建設。例如,如果您說?limit=5,那麼樹中最左邊的五個葉子將用作結果。或者如果你說?limit=5&descending=true那麼樹中最右邊的五個葉子就被用作結果。

但是,你正在試圖通過在地圖的功能做了?limit=5完成什麼可能會以不同的方式來實現。例如,您的應用程序可能會在文檔中包含某些內容,使其有條件地包含在結果中。或者強制只有五個文件被標記在索引中,儘管這很麻煩,並且根據數據庫的大小而定,成本很高。

乾杯。

0

如果你的UUID是連續的(你可以檢查你的配置),你可能可以利用它本身來查看前五個文檔。

0

它不可能爲map功能。因爲地圖將分別處理每個文檔,並可能同時在任何單獨的節點上進行處理。它根本不知道其他文件

但我認爲你想要的可能與reduce。減少會在地圖功能做完所有事情之後運行並具有所有結果。所以,你可以從map以任何方式

簡而言之修改的結果,你可以使用reduce對行分組使用相同的密鑰,那麼你可以調整每個組(如果我沒記錯的話在rereduce)到只有5個結果