2012-07-24 72 views
9

我有一個CouchDB的視圖設置使用數組鍵值,格式爲第一要素查詢數組鍵值:CouchDB的 - 只有

[articleId, -timestamp] 

我想查詢與同一篇文章ID的所有條目。所有時間戳都可以接受。

現在我使用的是這樣的查詢:

?startkey=["A697CA3027682D5JSSC",-9999999999999]&endkey=["A697CA3027682D5JSSC",0] 

但我想的東西有點簡單。

有沒有簡單的方法來完全通配第二個關鍵元素?最簡單的語法是什麼?

+6

我相信所有你需要做的就是'?startkey = 「A697CA3027682D5JSSC」] endkey = 「A697CA3027682D5JSSC」,{}]' – 2012-07-24 03:19:24

回答

13

首先,作爲評論指出的那樣,的確有特殊值{}是任何值後排序的,所以您的查詢就會變成:

startkey=["target ID"]&endkey=["target ID",{}] 

這是等同於一個通配符匹配。作爲便箋,不需要通過發出負時間戳來顛倒映射函數中的排序,您可以將該順序作爲視圖調用的選項(您的開始和結束鍵將被交換)反轉。

startkey=["target ID",{}]&endkey=["target ID"]&descending=true 
+0

優秀。我一直在尋找這個,但我想我的術語並不準確。非常感謝:) – Gopherkhan 2012-07-24 16:59:42

+0

你從哪裏找到這個?它工作的很好,但是我上週正在搜索文檔,這是我見過的第一個提到的。 – MBillau 2015-08-03 19:53:11

+1

@MBillau它太長了,所以我不記得了。我認爲這與'{}'的字母順序有關。 – 2015-08-07 05:51:58