2010-10-29 23 views
1

我在CouchDB中有兩個數據庫 - DB1的文檔是用戶數據 - 名稱,電子郵件地址,用戶名,密碼,但在一個字段中存儲了ID的保存列表在DB2其中用戶項目被保存(包括用戶名字段和一些文本框。從一個couchdb文檔通過另一個ids中的數據拉取數據(Python)

Example DB1 Document (Users) 

     { 
    "_id": "bobsmith1000", 
    "_rev": "83-1e00173cac0e736c9988d3addac403de", 
    "first_name": "Bob", 
    "password": "$2a$12$sdZUkkyDnDePQFNarTTgyuUZS6DL13JvBk/k9iUa5jh08gWAS5hpm", 
    "second_name": "Smith", 
    "urls": null, 
    "email": "[email protected]", 
    "projects": [ 
     "ee5ccf56da22121fd71d892dbe051746", 
     "ee5ccf56da22121fd71d892dbe0526bb", 
     "ee5ccf56da22121fd71d892dbe053433", 
     "ee5ccf56da22121fd71d892dbe056c71", 
     "ee5ccf56da22121fd71d892dbe0579c3", 
     "ee5ccf56da22121fd71d892dbe05930d" 
    ] 
} 

Example DB2 Document (Projects) 

{ 
    "_id": "ee5ccf56da22121fd71d892dbe05930d", 
    "_rev": "1-c923fbe9de82318980c7778c4c089321", 
    "url": "http://harkmastering.s3.amazonaws.com/testprojects/testfolder.zip", 
    "username": "bobsmith1000", 
    "time": "2010-10-29 07:13:47.377085", 
    "file_size": "5.2 MB" 
} 

我試圖用Python語言編寫(視圖使用瓶Web框架和Python的CouchDB庫),將檢查DB1,抓住所有項目id,然後轉到db2,並以批處理方式爲每個帶有匹配ID的文檔抽取url,time,filesize,這樣我就可以將該數據放在一個表中。

我今年纔開始編程,這涉及到我只能想象的技術。任何人都可以幫我找到解決方案嗎?

類感謝

+0

您是否使用Flask-CouchDB庫的Python CouchDB庫(自使用Flask以來)?只是想知道... – JoshFinnie 2010-10-29 19:49:11

+0

只是普通的Python CouchDB庫。不是Flask之一.. – Handloomweaver 2010-11-01 11:01:24

回答

1

除非你有很大的原因在不同的DBS分裂您的文檔,這似乎是沒有的情況下,根據你的問題,你應該如何讓他們都在同一個數據庫,並有一些財產上該文檔可以識別它們的類型(如「類型:用戶」和「類型:項目」)。

通過這種方式,您可以在單個couchdb視圖中獲得理想的結果,而不會有太多麻煩。在你的視圖映射函數中,你只需要發出諸如[「username」,0]和[「username」,「projectname」]之類的鍵。在Javascript將是:

function(doc) { 
if (doc.type == "user") { 
    emit([doc._id,0],null); 
} else if(doc.type == "project") { 
    emit([doc.username,doc._id],null); 
} 
} 

他們可以查詢該視圖,並有一個有組織的一套文件。

相關問題