我可以使用一些幫助過濾來自couchdb視圖的不同值。 我有一個數據庫,存儲有關計算機信息的日誌。 計算機的定期新記錄被寫入數據庫。CouchDB - 從列表中篩選每個記錄實例的最新日誌
有點簡化的I存儲條目這樣的:
{
"name": "NAS",
"os": "Linux",
"timestamp": "2011-03-03T16:26:39Z",
}
{
"name": "Server1",
"os": "Windows",
"timestamp": "2011-02-03T19:31:31Z",
}
{
"name": "NAS",
"os": "Linux",
"timestamp": "2011-02-03T18:21:29Z",
}
到目前爲止,我很努力來過濾該列表由不同的條目。 我想收到的是每個設備的最新日誌文件。
我有這樣一個觀點:
function(doc) {
emit([doc.timestamp,doc.name], doc);
}
林查詢這一觀點與Python(couchdbkit),我想出了這麼遠看起來像這樣的最佳解決方案:
def get_latest_logs(cls):
unique_names = []
unique = []
for log in cls.view("logs/timestamp", descending=True):
if log.name not in unique_names:
unique_names.append(log.name)
unique.append(log)
return unique
好。 ..這工作。但是我有強烈的感覺,這不是python需要迭代整個logfiles列表(可能會變得很長)的最佳解決方案。
我想我需要一個減少功能,但我真的找不到任何例子 或解釋我可以適應我的問題。
所以,我正在尋找的是一個(純粹的couchdb)視圖,只是吐出給定設備的最新日誌。
感謝, 安德烈亞斯
謝謝。這很好。什麼是一個不錯的電影回答:-) P.S.我會盡快給它一個upvote ;-) – arie 2011-03-06 19:39:54