【发布时间】:2016-07-26 07:59:55
【问题描述】:
下一个 SP 是尝试对集合中的所有文档进行计数,并且通常学习如何处理完整的集合。
由于某种原因下一个SP返回
{"count":0,"QueryCount":0}
虽然我希望它会返回
{"count":1000, "QueryCount":1}
SP:
function CountAll(continuationToken) {
var collection = getContext().getCollection();
var results =0;
var queryCount = 0;
var pageSize = 1000;
var responseOptionsContinuation;
var accepted = true;
var responseOptions = { continuation: continuationToken, pageSize : pageSize};
if (accepted) {
accepted = collection.readDocuments(collection.getSelfLink(), responseOptions, onReadDocuments);
responseOptions.continuation = responseOptionsContinuation;
}
setBody();
function onReadDocuments(err, docFeed, responseOptions) {
queryCount++;
if (err) {
throw 'Error while reading document: ' + err;
}
results += docFeed.length;
responseOptionsContinuation = responseOptions.continuation;
}
function setBody() {
var body = { count: results, QueryCount: queryCount};
getContext().getResponse().setBody(body);
}
}
【问题讨论】:
-
不确定我是否理解这个问题,但您可以在 SQL/Linq 中使用 ORDER BY 和 LIMIT 进行精确分页,或者您可以使用
options = new FeedOptions { MaxItemCount = 10 };进行近似分页。这有帮助吗? -
如果我可以询问下一页,分页会有所帮助,直到我拥有所有页面。否则,您将如何查询 20,000 个文档?
-
您可以将 MaxItemCount 设为 -1 来指定“尽可能多地获取”。我仍然没有关注。你想做什么?你用什么代码来尝试做到这一点?你期望什么输出/响应?这与您实际得到的有什么不同?
-
我把问题改成更容易回答的问题。
标签: .net azure azure-cosmosdb