gpt4 book ai didi

.net - 如何计算所有文档,azure DocumentDB

转载 作者:行者123 更新时间:2023-12-02 07:37:14 25 4
gpt4 key购买 nike

下一个 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);
}
}

最佳答案

请注意,文档总数现在由 DocumentDB 作为标题返回。 您可以通过调用 GET/colls/collectionName(.NET 中的 ReadDocumentCollectionAsync)以 O(1) 操作来执行此操作:

服务器今天返回此信息。不幸的是,现在的 SDK 并没有公开这个属性。我们将在下次更新 SDK 时修复此问题。在那之前你可以尝试这样做。

ResourceResponse<DocumentCollection> collectionReadResponse = await client.ReadDocumentCollectionAsync(…);
String quotaUsage = collectionReadResponse.ResponseHeaders["x-ms-resource-usage"];

// Quota Usage is a semicolon(;) delimited key-value pair.
// The key "documentCount" will return the actual count of document.

这是标题的样子。

"functions=0;storedProcedures=0;triggers=0;documentSize=10178;documentsSize=5781669;documentsCount=17151514;collectionSize=10422760";

在此示例中,文档数量约为 17M (17151514)。

关于.net - 如何计算所有文档,azure DocumentDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38584195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com