2013-10-18 30 views
1

我正在使用backbone-couchdb。 我有很多功能工作正常。我可以創建,編輯和保存模型並獲取集合。現在我處於一個需要通過其「標記」屬性獲取單個模型的地方。 backbone-couchdb庫設置爲通過「id」執行此操作。backbone-couchdb如何通過非標識訪問單個模型attrib

我理解視圖和鍵和過濾器以及我需要從CouchDB手動(使用curl)獲取數據的所有內容,但我不知道如何通過它的「標記」通過backbone-couchdb獲取一個模型。

這是否有意義?你有沒有做過這件事,你可以發佈一些幫助?

回答

0

我不知道骨幹,CouchDB的,但我相信它有some means for querying views...

你需要做的是

1)創建一個視圖(基本上,例如一個名爲by_tag),其發射的tag作爲關鍵,如

function(doc) 
{ 
    if(doc.tag) 
    { 
     emit(doc.tag, null); 
    } 
} 

2)添加視圖設計文檔(比如_design/documents),並把它上傳到你的數據庫

3)用一些額外的參數查詢您的看法:

  • include_docs=true包括其結果是在響應
  • limit=1如果你只是想找回一個結果
  • key="mytag"他們標記你創建的文檔有興趣的

的捲曲度,這將是

curl http://localhost:5984/mydb/_design/documents/_view/by_tag?key=%22mytag%22&include_docs=true&limit=1 
+0

是的,你說得對,它可以* *做到通過骨幹「集合」,而不是一個「模式」這種方式。通過backbone-couchdb,你只能通過集合來實現自定義的attrib提取,這通常是一個以上的模型,我想通過「name」attrib獲取一個模型。我實際上是在我的代碼中使用一個特殊名稱的「SingleCollection」來完成這個工作,它總是返回一個單一的模型,但是它很笨拙,實際上應該通過model.fetch。 – Locohost

0

解決方案可能是定義模型並覆蓋id屬性(將其設置爲標記)。 然後,您可以在couchdb中使用自定義視圖來獲取它。

RG,

桑妮

相關問題