簡體   English   中英

具有多個鍵格式的CouchDB查詢視圖

[英]CouchDB Query View with Multiple Keys Formatting

使用多個鍵時,在獲取ouchdb視圖以返回正確的文檔時遇到問題。

可以正常工作,返回匹配的文檔:

GET http://example.com:5984/myDb/_design/myFilters/_view/getItemByForeignKeyId?key=abc123

這將返回視圖中所有匹配或不匹配的文檔:

GET http://example.com:5984/myDb/_design/myFilters/_view/getItemByForeignKeyId?keys=%5B%22abc123%22%5D

我通常很擅長尋找答案。 但是,CouchDB文檔對於使用多個鍵的格式非常清楚。 我已經看到一些使用?keys = [123,123]的方法,並且還看到過?keys =“ abc”,“ abc”。

如果任何人都可以使用GET方法對CouchDB的多個關鍵字查詢的“適當”格式和編碼提供任何說明,我將非常感激。

要從一個視圖中獲取多個鍵,您需要執行一個發布請求並在請求主體中提交這些鍵。 您的HTTP請求將如下所示:

POST /myDb/_design/myFilters/_view/getItemByForeignKeyId
Content-Type: application/json

{
   "keys" : [
      "abc",
      "123"
   ]
}
function(doc){
    {
        if([doc.key1, doc.key2])
            emit([doc.key1, doc.thingYouWantToKnow]);
    }
}

並在查詢字符串的末尾

?key=["key1Value", "key2Value"]

注意,它是key=[] ,不是keys=[] !!!!!!!!!

並不是說它是正確的,但實際上您也可以通過查詢字符串來做到這一點。 數組括弧不應該被編碼。 例如,這對我有用:

http://localhost:5984/test/_design/artists_albums/_view/albums_by_artist?keys=[%22Super%20bad%20artist%22,%20%22Fake%20artist%201%22]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM