В настоящее время единственный способ сделать это напрямую использовать подкачку на запрос для получения результатов в кусках. Это связано с очевидным недостатком набора результатов (потенциально) изменения между поиском страниц, если у вас есть другой процесс, который продолжает изменять данные в фоновом режиме. В C# это будет выглядеть примерно так (ввод из памяти, извиняться, если он не компилируется откладывая):
var pageSize = 100;
var pageIndex = 0
IQueryResult<dynamic> result = null;
do {
var query = string.Format("SELECT myBucket.* FROM myBucket LIMIT {0} OFFSET {1}", pageSize, pageIndex);
result = await bucket.QueryAsync<dynamic>(query);
pageIndex += result.Rows != null ? result.Rows.Count : 0;
}
while(result.Success && result.Rows.Count > 0);
Другой вариант заключается в копировании результата нужного запроса в другой, предположительно пустой, ведро и то запрос/листать их на досуге, потому что копия не будет зависеть от изменений исходного ковша:
INSERT INTO otherBucket (key _k, value _v)
SELECT META().ID _k, _v FROM myBucket _v WHERE <your conditions here>;
Следуйте за этим с кодом поискового вызова, описанным ранее.
Я был обеспокоен тем, что это будет так. –