但问题是数组有一个最大字符限制。如果我的
集合中有数百万个文档,这可能是
基于我的
research
,js中最长的数组可能有232-1=
4,294,967,295
4.29
十亿个元素。但是,它完全可以满足数百万数据量的需求。另外,你不能直接查询如此庞大的数据量,这是不可能的。
不管是吞吐量限制(RUs设置)还是查询效率因素,您都应该考虑批量处理大量数据。
因此,我正在寻找一个for循环式的解决方案,其中每个文档
返回时,我进行分析,然后移动到下一步/进行分析
平行。
v2 js sdk
const cosmos = require('@azure/cosmos');
const CosmosClient = cosmos.CosmosClient;
const endpoint = "https://***.documents.azure.com:443/"; // Add your endpoint
const masterKey = "***"; // Add the masterkey of the endpoint
const client = new CosmosClient({ endpoint, auth: { masterKey } });
const databaseId = "db";
const containerId = "coll";
async function run() {
const { container, database } = await init();
const querySpec = {
query: "SELECT r.id,r._ts FROM root r"
};
const queryOptions = {
maxItemCount : -1
}
const queryIterator = await container.items.query(querySpec,queryOptions);
while (queryIterator.hasMoreResults()) {
const { result: results, headers } = await queryIterator.executeNext();
console.log(results)
console.log(headers)
//do what you want to do
if (results === undefined) {
// no more results
break;
}
}
}
async function init() {
const { database } = await client.databases.createIfNotExists({ id: databaseId });
const { container } = await database.containers.createIfNotExists({ id: containerId });
return { database, container };
}
run().catch(err => {
console.error(err);
});
有关续航令牌的详细信息,请参阅我的
previous case