Couchdb 没有集合的概念。但是,您可以将文档上的类型标识符与 Couchdb 视图结合使用来获得类似的结果。
类型标识符
当您在 Couchdb 中保存文档时,添加一个指定类型的字段。例如,您可以像这样存储一个朋友:
{
_id: "XXXX",
type: "Friend",
first_name: "John",
...
}
你会像这样存储历史:
{
_id: "XXXX",
type: "History",
url: "http://www.google.com",
...
}
这两个文档都在同一个数据库中,如果您查询该数据库中的所有文档,那么您将同时收到这两个文档。
观看次数
您可以创建按类型过滤的视图,然后直接查询这些视图。例如,创建一个视图来检索这样的朋友(在 Cloudant 中您可以去添加新的设计文档,您可以直接复制并粘贴它):
{
"_id" : "_design/friends",
"views" : {
"all" : {
"map" : "function(doc){ if (doc.type && doc.type == 'Friend') { emit(doc._id, doc._rev)}}"
}
}
}
让我们扩展地图功能:
function(doc) {
if (doc.type && doc.type == "Friend") {
emit(doc._id, doc._rev);
}
}
本质上,这个地图函数是说只将文档关联到这个视图,类型==“朋友”。现在,我们可以查询这个视图,只返回好友:
http://SERVER/DATABASE/_design/friends/_view/all
其中friends = 设计文档的名称,all = 视图的名称。将SERVER 替换为您的服务器,将DATABASE 替换为您的数据库名称。
您可以在此处找到有关视图的更多信息:
https://wiki.apache.org/couchdb/Introduction_to_CouchDB_views