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

发布于 2015-05-06 18:35:22
..。这是否意味着我需要创建多个数据库?
不是的。
..。文档是sql中的一行,还是我被误解了?
没错。SQL表定义列标题(名称和类型)--它们是文档的JSON属性名称。
因此,具有相同属性的所有文档(行)(所谓的“模式”)都等同于您的SQL表。您可以在一个数据库中拥有任意多个不同的模式(请访问json-schema.org以获得一些灵感)。
如何分别要求?创建CouchDB视图!您可以使用从SQL中知道的一个请求获取表格数据的所有/一些“行”(具有相同模式的文档)。
要轻松地编写这样的视图,属性type对于CouchDB文档非常常见。SQL表中的已知名称可以是类似于doc.type: "animal"的类型。
您的视图名可能是animalByName或animalByWeight。取决于你的需要。
发布于 2015-06-15 18:20:37
这个问题的答案似乎出奇地少有记载。虽然@llabball给出了一个很好的答案,但我不认为观点总是可行的。
由于您可以在不使用map/的情况下在一节中阅读,诺兰解释说,对于更简单的应用程序,关键是滥用_ids,并利用allDocs()的力量。
换句话说,如果您有两种不同的类型(比如艺术家和专辑),那么您可以在每种类型的id前加上前缀,以获得易于搜索的数据集。例如,_id: 'artist_name' & _id: 'album_title'允许您按名称顺序轻松地检索艺术家。
以这种方式排列数据将导致更好的性能,因为不需要额外的索引,代码也更少。但是,显然,如果您的数据需求更复杂,那么视图就是要走的路。
发布于 2017-06-26 03:38:22
有时候,多数据库计划是一个很好的选择,就像每个用户的数据库,甚至每个用户的数据库。看看这次谈话上的CouchDB邮件列表。
https://stackoverflow.com/questions/30066753
复制相似问题