簡體   English   中英

使用 CouchDB 的復合鍵,查找多條記錄

[英]Composite key with CouchDB, finding multiple records

我知道你可以傳遞一個鍵或一個范圍來返回 CouchDB 中的記錄,但我想做這樣的事情。 查找作為 X 值的 X 記錄。

例如,在常規的 SQL 中假設我想返回 ID 為 5、7、29、102 的記錄。 我會做這樣的事情:

SELECT * FROM sometable WHERE id = 5 OR id = 7 or id = 29 or id = 102

是否可以在 CouchDB 中執行此操作,我將所有我想在鍵數組中找到的值扔掉,然后 CouchDB 搜索所有可能存在於“鍵參數”中的記錄?

您可以 按照 CouchDB wiki 上的文檔進行POST。 您在請求正文中傳遞鍵列表。

{"keys": ["key1", "key2", ...]}

缺點是瀏覽器不會緩存 POST 請求。

或者,您可以使用帶有keys參數的 GET 獲得相同的響應。 例如,您可以使用以下命令查詢視圖_all_docs

/DB/_all_docs?keys=["ID1","ID2"]&include_docs=true

其中,正確編碼為 URL,變為:

/DB/_all_docs?keys=%5B%22ID1%22,%22ID2%22%5D&include_docs=true

這應該提供更好的可緩存性,但請記住_all_docs在每次文檔更新時都會更改。 有時,您可以通過僅使用所需文檔定義自己的視圖來解決此問題。

直視 function,這是不可能的。 但是,您可以使用_list function 來完成相同的結果。

暫無
暫無

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

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