使用多个斜杠将文档保存到CouchDB URL

时间:2018-01-08 09:55:41

标签: database nosql couchdb

我第一次接触NoSQL数据库是通过Firebase进行的,我通常会将json数据存储到以下网址:Project,然后将其他内容存储到像public void mouseClicked(final MouseEvent mouseEvent) { if (2 == event.getClickCount()) { // Do something } } 这样的网址。< / p>

尝试在CouchDB中做同样的事情我遇到了一个问题。

例如,我保存了一个简单的对象,如:

category

category/subcategory

按预期工作。然后我尝试保存以下

{"_id":"one"} 

   database/category

我收到此错误消息:

{"_id":"two"}

显然,当您在网址中使用多个斜杠时,Couch会将资源理解为附件。如果是这样,那么如何建立数据库,其中数据将具有多个级别,例如database/category/subcategory

1 个答案:

答案 0 :(得分:1)

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 );
  }
}