IBM Cloud Docs
读取文档

读取文档

此处显示的步骤演示了如何阅读文档:

  1. 发送 GET 请求以检索文件。

  2. Run the following command: https://$ACCOUNT.cloudant.com/$DATABASE/$DOCUMENT_ID.

回顾一下,对于分区数据库来说,$DOCUMENT_ID 是由分区关键字部分和文档关键字部分组成的。

如果您不知道某个文件的 _id、 可以 查询数据库所有文件。

由于IBM Cloudant的分布式、最终一致性特性,读取可能会返回过时数据。 特别是 即使是同一个客户端最近写入的数据,也可能无法在写入请求后立即从读取请求中返回。 要解决这一问题、 客户端可以在本地缓存数据状态。 缓存还有助于减少请求次数、提高应用程序性能并减轻数据库集群的负荷。 这种行为也适用于其他读取请求,例如MapReduce和搜索索引。

请参阅使用 HTTP 检索文档的示例:

GET /$DATABASE/$DOCUMENT_ID HTTP/1.1

您可以通过选择代码示例中的语言,自定义本节以使用编程语言。

请参阅检索文件的示例:

curl -H "Authorization: Bearer $API_BEARER_TOKEN" -X GET "$SERVICE_URL/products/small-appliances:1000042"
import com.ibm.cloud.cloudant.v1.Cloudant;
import com.ibm.cloud.cloudant.v1.model.Document;
import com.ibm.cloud.cloudant.v1.model.GetDocumentOptions;

Cloudant service = Cloudant.newInstance();

GetDocumentOptions documentOptions =
    new GetDocumentOptions.Builder()
        .db("products")
        .docId("small-appliances:1000042")
        .build();

Document response =
    service.getDocument(documentOptions).execute()
        .getResult();

System.out.println(response);
const { CloudantV1 } = require('@ibm-cloud/cloudant');

const service = CloudantV1.newInstance({});

service.getDocument({
  db: 'products',
  docId: 'small-appliances:1000042'
}).then(response => {
  console.log(response.result);
});
from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_document(
  db='products',
  doc_id='small-appliances:1000042'
).get_result()

print(response)
getDocumentOptions := service.NewGetDocumentOptions(
  "products",
  "small-appliances:1000042",
)

document, response, err := service.GetDocument(getDocumentOptions)
if err != nil {
  panic(err)
}

b, _ := json.MarshalIndent(document, "", "  ")
fmt.Println(string(b))

前面的围棋示例需要以下导入块:

import (
   "encoding/json"
   "fmt"
   "github.com/IBM/cloudant-go-sdk/cloudantv1"
)

所有 Go 示例都要求 service 对象初始化。 有关更多信息,请参阅 API 文档中的 "身份验证 "部分 的示例。

响应包含您请求的文件、 如果无法检索到文件,则会给出错误说明。

请参阅检索文件的响应示例:

{
  "_id": "exampleid",
  "brand": "Foo",
  "colours": [
    "red",
    "green",
    "black",
    "blue"
  ],
  "description": "Slim Colourful Design Electronic Cooking Appliance for ...",
  "image": "assets/img/0gmsnghhew.jpg",
  "keywords": [
    "Foo",
    "Scales",
    "Weight",
    "Digital",
    "Kitchen"
  ],
  "name": "Digital Kitchen Scales",
  "price": 14.99,
  "productid": "1000042",
  "taxonomy": [
    "Home",
    "Kitchen",
    "Small Appliances"
  ],
  "type": "product"
}

查询参数

您可以在 URL 中添加一些查询参数、 例如 /mydatabase/doc?attachments=true&conflicts=true.

所有参数均为可选参数。

查询参数
名称 Type 描述 缺省
attachments 布尔值 包括回复中的附件机构。
att_encoding_info 布尔值 如果特定附件是压缩的,则在附件存根中包含编码信息。
atts_since 修订字符串数组 仅包括特定修订后的附件。 不包括指定修订的附件。 []
conflicts 布尔值 包括有关文件冲突的信息。
deleted_conflicts 布尔值 包括有关已删除的冲突修订的信息。
latest 布尔值 强制检索最新的“叶子”修订版,无论请求的是什么修订版。
local_seq 布尔值 包括文件的最后更新序列号。
meta 布尔值 与指定 conflictsdeleted_conflictsopen_revs 查询参数相同。
open_revs 数组或 all 检索指定修订页的文件。 此外,它还接受返回所有叶修订版的 all 值。 []
rev 字符串 检索指定修订版本的文件。
revs 布尔值 包括所有已知文件修订版清单。
revs_info 布尔值 包括所有已知文件修订版的详细信息。

阅读更多

一次获取多个文档、 查询数据库 使用 include_docs 选项。