簡體   English   中英

將文檔保存到CouchDB中時出現多個斜線

[英]Saving Documents to CouchDB Urls with Multiple Slashes

我第一次接觸NoSQL DB是通過Firebase,我通常將json數據存儲到url這樣的URL: category ,然后再將其他內容存儲到URL諸如category/subcategory

試圖在CouchDB中做同樣的事情,我遇到了一個問題。

例如,我保存了一個簡單的對象,例如:

{"_id":"one"} 

   database/category

它按預期工作。 然后我嘗試保存以下內容

{"_id":"two"}

database/category/subcategory

我收到此錯誤消息:

{"error":"not_found","reason":"Document is missing attachment"}

顯然,當您在網址中使用多個斜杠時,Couch會將資源理解為附件。 如果是這樣,那么如何使數據庫的數據具有多個級別,例如Geography/Continents/Africa/Egypt

CouchDB不適合您描述的用法。 CouchDB是平面文檔存儲。

您應該展平結構以將其存儲在CouchDB中。

{"_id":"country-es",
 "type":"geography",
 "country":"Spain",
 "continent":"Europe"
}

{"_id":"country-fr",
 "type":"geography",
 "country":"France",
 "continent":"Europe"
}

然后使用視圖以具有一種機制來分層查詢它。

function (doc) {
  if (doc.type == "geography") {
      emit([doc.continent,doc.country], doc._id );
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM