我有一個包含照片的couchdb數據庫,每張照片有一個文檔。我想創建一個基於時間接近度的照片分組視圖,即在彼此30分鐘內創建的分組照片。如何在一段時間內選擇couchdb中的文檔?
0
A
回答
0
您的js將是您的地圖功能,並且在Ektorp中,您將寫入js map函數並將其作爲字符串傳遞給我之前發佈的代碼。您可以將當前時間作爲milis,減去30分鐘,並獲取所需的時間差(以java計算)。然後你將這個毫秒時間傳遞給javascript。記住你的javascript函數是一個字符串,所以你只需要將所需的差異追加到該字符串。你可以編寫如下:
String javaScriptFunction = "
function(doc) {
if(doc.created >" + timeDifferenceIneed + "){
emit(doc.photoName, doc);
}
} " // of course ignored exiting characters
所以上面的,timeDifferenceIneed你現在的時間--30分鐘。然後將此字符串傳遞給上方並獲得查詢結果
1
如果您的照片文檔具有可在JavaScript中正確整理的「timestamp」元素,則可以創建一個簡單的地圖,將時間戳作爲關鍵字發送,然後計算窗口你想查詢。
簡單查看地圖應該是這樣的:
"mapname": "function(doc) { emit(doc.timestamp) }"
一旦你知道你專注於照片的時間戳,你就必須產生startkey和endkey參數設置爲你想要的窗口。
CouchDB將返回具有您需要爲照片文檔構建URL的_id值的行。
因此,對於具有的1332927024時間戳的圖像,您的查詢將
http://couchdb/db/_design/designdocname/_view/mapname?startkey=1332926124&endkey=1332927924
相關問題
- 1. 在一段時間內選擇語句
- 2. 的CouchDB/PouchDB選擇已刪除文檔
- 3. 如何保證CouchDB文檔中字段的唯一性?
- 4. 在時間段內選擇一週中的特定日期
- 5. 如何在MongoDB中選擇一個字段大於其他字段的文檔?
- 6. 選擇時間段內的數據
- 7. 如何在mysql中選擇一段時間?
- 8. 如何在couchdb中更新文檔記錄/字段
- 9. 如何選擇在一段時間內每月工作的用戶?
- 10. 如何在我選擇的一段時間內刷新wordpress插件?
- 11. 如何清除couchDB文檔
- 12. 如何更新CouchDB中的文檔
- 13. 選擇CouchDB中沒有某些鍵的文檔
- 14. 如何在一段時間內創建一段時間在MDX中測量?
- 15. 如何用空的「」文檔ID刪除一個couchdb文檔?
- 16. 在一組文檔中選擇RavenDB字段的最小值
- 17. MySQL在一段時間內選擇最大併發呼叫數
- 18. 在特定時間段內爲每個日期選擇一行
- 19. 在給定時間段內選擇唯一登錄
- 20. 在CouchDB中鏈接文檔
- 21. 在CouchDB中更新文檔
- 22. 如何在給定的時間內選擇一個隨機數?
- 23. 子選擇的時間段
- 24. MySQL的選擇時間段
- 25. 在視圖中添加上次訪問時間到CouchDB文檔
- 26. 根據範圍在字段中選擇一段時間
- 27. 如何在MDX中選擇移位的時間段?
- 28. 借給予CouchDB中下面的文檔CouchDB文檔
- 29. SQL選擇一段時間內活動的最大激增
- 30. 使用Intent.ACTION_GET_CONTENT選擇一段時間內的視頻
我明白了。每次執行查詢時都會創建一個臨時視圖。這將工作,但將是昂貴的。請參閱:http://wiki.apache.org/couchdb/Introduction_to_CouchDB_views#Concept – user1294586 2012-03-27 21:51:41
不是臨時視圖,它是永久性視圖並以文檔形式存儲。 – anvarik 2012-03-27 22:10:57