获取包含超过 2000 个文档的分区的 PartitionedList
Get PartitionedList for partition with more than 2000 documents
我有一个分区的 Cloudant 数据库(在免费层),其中一个分区包含 2000 多个文档。不幸的是,运行 await db.partitionedList('partitionID')
returns 这个对象:
{
total_rows: 2082,
offset: 0,
rows: [...]
}
其中行是仅包含 2000 个对象的数组。有没有办法让我得到剩下的 82 行,或者得到所有 2082 行的列表。谢谢
Cloudant limits the _partition
endpoints to returning a maximum of 2000 rows 所以你不能一次获取所有 2082 行。
获取剩余行的方法是存储最后一行的文档 ID,并使用它为第二个请求创建 startkey
,附加 [=13=]
以请求列表开始来自索引中的下一个文档 ID,例如
db.partitionedList('partitionID', {
startkey: `${firstResponse.rows[1999].id}[=10=]`
})
请注意,partitionedList
等同于 /{db}/_partition/{partitionID}/_all_docs
,因此 key
和 id
在每一行中都是相同的,您可以放心地假设它们是唯一的(因为它是文档 ID)允许使用 unicode [=13=]
trick. However, if you wanted to do the same with a _view
you'd need to store both the key
and id
and fetch the 2000th row twice.
我有一个分区的 Cloudant 数据库(在免费层),其中一个分区包含 2000 多个文档。不幸的是,运行 await db.partitionedList('partitionID')
returns 这个对象:
{
total_rows: 2082,
offset: 0,
rows: [...]
}
其中行是仅包含 2000 个对象的数组。有没有办法让我得到剩下的 82 行,或者得到所有 2082 行的列表。谢谢
Cloudant limits the _partition
endpoints to returning a maximum of 2000 rows 所以你不能一次获取所有 2082 行。
获取剩余行的方法是存储最后一行的文档 ID,并使用它为第二个请求创建 startkey
,附加 [=13=]
以请求列表开始来自索引中的下一个文档 ID,例如
db.partitionedList('partitionID', {
startkey: `${firstResponse.rows[1999].id}[=10=]`
})
请注意,partitionedList
等同于 /{db}/_partition/{partitionID}/_all_docs
,因此 key
和 id
在每一行中都是相同的,您可以放心地假设它们是唯一的(因为它是文档 ID)允许使用 unicode [=13=]
trick. However, if you wanted to do the same with a _view
you'd need to store both the key
and id
and fetch the 2000th row twice.