次のSPは、コレクション内のすべてのドキュメントを数え、一般的に完全なコレクションを処理する方法を学びます。何らかの理由ですべてのドキュメント、紺碧のDocumentDBをカウントする方法
次のSPリターン
{ "数":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を指定して「できるだけ多くを取得」を指定できます。私はまだフォローしていません。あなたは何をしようとしているのですか?あなたはそれをしようとするのにどのようなコードを使用していますか?あなたはどんな出力/応答を期待していますか?それは実際に得られるものとどう違うのですか? –