【问题标题】:Create collections in cloudant在 cloudant 中创建集合
【发布时间】:2018-04-24 00:30:41
【问题描述】:

我正在尝试构建一个离子应用程序,该应用程序使用 pouchdb 从 Cloudant 检索数据。 Cloudant 只允许创建数据库和文档。 如何在 Cloudant 中创建一些集合?

【问题讨论】:

  • 我确定这取决于您所说的“收藏”是什么意思。您能否澄清一下,也许通过参考另一个提供与您想要的功能相匹配的集合的数据库?

标签: ionic-framework couchdb pouchdb cloudant


【解决方案1】:

两部分答案:

一组满足特定标准的文档可以被视为 Cloudant/CouchDB 中的一个集合。您可以创建views 来获取这些文档。这样的视图可能会检查文档中是否存在属性(“具有名为 type 的属性的所有文档”)、属性的值(“具有名为 type 的属性的所有文档 具有 book") 的值或任何其他对您的应用程序有意义的条件并返回相应的文档。

您基本上必须遵循三个步骤:

  • 确定如何识别数据库中您认为属于集合的文档
  • 根据您在上一步中的发现创建一个视图
  • 查询视图以检索这些文档

以上文档链接提供了更多详细信息。

文档中的属性也可以表示集合,如下例所示,它定义了一个简单的字符串数组。

{
  "mycollectionname": [
      "element1",
      "element2",
      ...
  ]
}

您如何实现集合实际上取决于您的用例场景。

【讨论】:

    【解决方案2】:

    很长的帖子,但希望对您有所帮助。

    我想用 RDBMS 类比来解释这一点。

    在任何 RDBMS 中,新数据库意味着具有不同凭据集的不同连接。 集合将意味着该特定数据库中的一组表。 一条记录意味着表中的一行。

    同样,您可以将单个 Cloudant 服务实例视为一个数据库(RDBMS 术语)。 在 Cloudant 的术语中,集合将是该服务实例中的“数据库”。 一个文档对应一行。

    因此,Cloudant 本身没有收集的概念。如果您需要将相关文档存储在单独的集合中,则必须在同一个服务实例中使用多个数据库。

    如果您只想使用单个数据库,您可以创建一个像“record_index”这样的字段来区分不同的文档。在查询这些文档时,您可以使用索引。为了。例如我有一个学生数据库。但我不想将艺术、商业、科学分支的记录存储在不同的数据库中。我将在记录中添加一个字段“record_type”:“arts”等。创建索引,

    { selector: {record_type: "arts"}}
    

    在对艺术记录进行任何操作之前,您可以使用该索引查询文档。通过这种方式,您将能够对文档进行逻辑分组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-14
      • 1970-01-01
      • 1970-01-01
      • 2017-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多