我對索引視圖的最佳方式有些懷疑。CouchDB查看索引性能
比方說,我存儲「用戶」鏈接到「組」這樣的文件:
{
"groupId": "<group_id>",
"userId": "<user_id>"
}
我想要檢索鏈接到用戶的所有組,所以很明顯映射的最佳方法是:
emit(doc.userId, doc.groupId);
我可以通過查詢key=<user_id>
查看視圖來檢索組。
但是現在,如果我想要刪除與特定用戶/組對相對應的文檔,我需要瀏覽查看查詢的所有結果,直到找到正確的值並獲取文檔的ID。
所以我認爲索引視圖的更好的方式是這樣的:
emit([doc.userId, doc.groupId], null);
我可以讓所有的組通過發出一系列查詢和解析返回的行鍵鏈接到用戶,並還用「全部」鍵直接打一個特定的文件(如果存在)。但是我擔心範圍查詢(比「完整」查詢更頻繁地被調用)會比最初的方法有更差的性能。
任何有識之士將不勝感激,謝謝!
謝謝。我不認爲往返旅行對我來說是一個問題,因爲這兩個查詢不相關:它或者是「獲取列表」,或者「(嘗試)刪除一個條目」,但這些是兩個不同的事情。 – ThomasWeiss