我有一些文件有2組屬性:標記和代替。這裏是他們的樣子的例子:完整加入/在couchdb交叉點
{
title: "doc1",
tag: ["mountain", "sunny", "forest"],
lieu: ["france", "luxembourg"]
},
{
title: "doc2",
tag: ["sunny", "lake"],
lieu: ["france", "germany"]
},
{
title: "doc3",
tag: ["sunny"],
lieu: ["belgium", "luxembourg", "france"]
}
我該如何映射/減少和查詢我的數據庫,以便能夠檢索只有符合這些標準的文檔的交集:
- 代替: [ 「法國」, 「盧森堡」]
- 標籤: 「陽光燦爛」]
返回:DOC1和doc3的
我找不出任何格式的map/reduce可能只能返回一個查詢。我現在正在做的是:發出每個代替/標籤作爲關鍵字,並將文檔的ID作爲值相關,然後減少每個鍵的文檔ID。然後從我的應用程序查詢這個視圖,在應用程序端做一個文檔的交集(只帶有具有3個鍵(盧森堡,法國和陽光)的文檔,然後用這些文檔的id再次查詢couchdb以檢索實際的文檔。我覺得這不是正確的/最好的辦法嗎?
我使用列表來做交點工作,它工作得很好。但我仍然需要做其他請求來獲取使用文檔的文檔IDS。任何想法,我還能有什麼不同直接檢索文件?
謝謝!