PouchDB结构

Suf*_*fi 15 couchdb nosql pouchdb

我是nosql概念的新手,所以当我开始学习PouchDB时,我找到了这个转换图表.我的困惑是,PouchDB如何处理,如果我说我有多个表,这是否意味着我需要创建多个数据库?因为从我对pouchdb的理解,一个数据库可以存储很多文件,但是一个文件在sql中意味着一行还是我被误解了?

在此输入图像描述

Mat*_*Way 13

这个问题的答案似乎令人惊讶地记录不足.虽然@llabball明显给出了一个不错的答案,但我认为这些观点总是不可能的.

正如你可以看到这里的部分.当不使用的map/reduce,诺兰解释说,简单的应用,关键是滥用 _ids,并充分利用的动力allDocs().

换句话说,如果你有两种不同的类型(比如艺术家和专辑),那么你可以在每种类型的id前面加上一个易于搜索的数据集.例如_id: 'artist_name'&_id: 'album_title',将允许您按名称顺序轻松检索艺术家.

以这种方式布置数据将导致更好的性能,因为不需要额外的索引和更少的代码.但是,显然,如果您的数据要求更复杂,那么视图就是可行的方法.


小智 8

......这是否意味着我需要创建多个数据库?

没有.

...一个文件在sql中意味着一行还是我被误解了?

那就对了.SQL表定义列标题(名称和类型) - 它们是doc的JSON属性名称.

因此,具有相同属性的所有文档(行)(所谓的"模式")等同于SQL表.您可以在一个数据库中拥有尽可能多的不同架构(访问json-schema.org获取一些灵感).

如何单独申请?创建CouchDB视图!您可以使用SQL中的一个请求获取表格数据的所有/某些"行"(具有相同模式的文档).

要轻松编写此类视图,该属性type对于CouchDB文档非常常见.SQL表中的已知名称可以是您的类型doc.type: "animal"

您的视图名称可能是animalByNameanimalByWeight.取决于您的需求.