[英]CouchDB - Mango Query to select records based on complex composite key
[英]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.