Cloudant在同一数据库中的不同文档结构

时间:2018-10-03 12:22:56

标签: java cloudant

例如,我是cloudant的新手,例如,在同一个数据库中有两个不同的文档结构,如下所示。

我想知道如何列出具有特定结构的所有文档?另一个问题是如何使用Java列出类型2的所有文档并与对类型1的特定文档的引用有关?

例如:

Document1

<servlet-class>

文档2:保留对文档1的引用

<jsp-file>

1 个答案:

答案 0 :(得分:2)

在Cloudant / CouchDB中实现此目标的标准方法是使用一个鉴别符字段,该字段指定文档类型,然后使用一个视图。例如:

文档1:

{
    "_id": "dec_1",
    "name": "value",
    "type": "Value",
    "doctype": "dec"
}

文档2:

{
    "_id" : "ship_1",
    "decRef" : "dec_1",
    "size" : "1.0",
    "doctype": "ship"
}

然后创建一个视图,地图看起来像这样:

function (doc) {
   if (doc && doc.doctype) {
      emit(doc.doctype, null);
   }
}

现在您可以通过点击视图列出所有给定类型的文档

curl "https://U:P@U.cloudant.com/DB/_design/DDOC/_view/VIEW?key=\"dec\""
{"total_rows":1,"offset":0,"rows":[ 
    {"id":"dec_1","key":"dec","value":null}
]}