我有两个数据库CouchDB中 - DB1的文件是用户数据 - 姓名,电子邮件地址,用户名,密码,但我存储的ID列表中选择一个领域内所保存在DB2,其中用户项目被保存(包括用户名字段和一些文本框。

    Example DB1 Document (Users)

       {
   "_id": "bobsmith1000",
   "_rev": "83-1e00173cac0e736c9988d3addac403de",
   "first_name": "Bob",
   "password": "$2a$12$sdZUkkyDnDePQFNarTTgyuUZS6DL13JvBk/k9iUa5jh08gWAS5hpm",
   "second_name": "Smith",
   "urls": null,
   "email": "bob@smith.com",
   "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的每个文档,所以我可以可以将这些数据在表中。

我只今年年初开始编程,这涉及到技术,我只能想象。谁能帮我想想办法?

类感谢

有帮助吗?

解决方案

除非你有很大的原因,分割在不同的DBS您的文档,这似乎是没有根据你的问题的情况下,他们应该让他们都在同一个数据库和对文档某些属性,以确定它们的类型(像 “类型:用户” 和 “类型:项目”)

这样你可以得到一个单一的CouchDB视图所期望的结果没有太多的麻烦。在您查看地图功能,你只需要发出如[“用户名”,0]和[“用户名”,“项目名称”]键。在Javascript中,这将是:

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

他们可以查询视图,且具有一个有组织的一套文件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top