Couchdb 我可以为每个数据库创建多个集合吗?
从mongo切换到PockDB(使用Cloudant),我喜欢“每个用户一个数据库”的概念,但是有没有办法为每个数据库创建多个集合/表 范例Couchdb 我可以为每个数据库创建多个集合吗?,couchdb,pouchdb,cloudant,Couchdb,Pouchdb,Cloudant,从mongo切换到PockDB(使用Cloudant),我喜欢“每个用户一个数据库”的概念,但是有没有办法为每个数据库创建多个集合/表 范例 - Peter - History - Settings - Friends - John - History - Settings - Friends 等等。Couchdb没有集合的概念。但是,使用文档上的类型标识符和Couchdb视图可以获得类似的结果
- Peter
- History
- Settings
- Friends
- John
- History
- Settings
- Friends
等等。Couchdb没有集合的概念。但是,使用文档上的类型标识符和Couchdb视图可以获得类似的结果 类型标识符 在Couchdb中保存文档时,请添加指定类型的字段。例如,您可以这样存储朋友:
{
_id: "XXXX",
type: "Friend",
first_name: "John",
...
}
您可以这样存储历史记录:
{
_id: "XXXX",
type: "History",
url: "http://www.google.com",
...
}
这两个文档都在同一个数据库中,如果查询该数据库中的所有文档,则会同时收到这两个文档
视图
您可以创建按类型过滤的视图,然后直接查询这些视图。例如,创建一个视图来检索这样的朋友(在Cloudant中,您可以添加新的设计文档,并可以直接复制和粘贴此文档):
让我们展开map函数:
function(doc) {
if (doc.type && doc.type == "Friend") {
emit(doc._id, doc._rev);
}
}
本质上,这个映射函数是说,只将类型为==“Friend”的文档关联到此视图。现在,我们可以查询此视图,只返回朋友:
http://SERVER/DATABASE/_design/friends/_view/all
其中,friends
=设计文档的名称,all
=视图的名称。将服务器
替换为您的服务器,将数据库
替换为您的数据库名称
您可以在此处找到有关视图的更多信息:
你可以研究类似的东西。否则,您可以执行“每个用户3个数据库”。;) 我可能不完全理解您在这里需要什么,但一般来说,您可以在CouchDB/Cloudant/pockdb中以3种不同的方式实现您所描述的内容
http://SERVER/DATABASE/_design/friends/_view/all