【发布时间】:2021-06-18 22:39:52
【问题描述】:
我正在将数据存储到 cosmos DB 中,如下所示,我想获取每个索引的最新数据。 索引的数量是可变的,至少10个。
(简化文档)
{
"receivedTime": "2021-06-11T01:48:02.751Z",
"source": "server",
"data": {
"index": "1",
"value": "my data"
},
"id": "c10ef6dc-53a6-40e0-84d1-551e508d0427",
}
目前,我正在查询索引的数量并显示每个索引的结果。
(只有c.data.index = '<index>'不同,其他相同。)
SELECT * FROM c WHERE c.source = 'server' AND c.data.index = '1' ORDER BY c._ts DESC OFFSET 0 LIMIT 1,
SELECT * FROM c WHERE c.source = 'server' AND c.data.index = '2' ORDER BY c._ts DESC OFFSET 0 LIMIT 1,
SELECT * FROM c WHERE c.source = 'server' AND c.data.index = '3' ORDER BY c._ts DESC OFFSET 0 LIMIT 1,
...
但是随着索引数量的增加,会有延迟。
有什么方法可以一次性查询全部吗?
有没有更高效的方式查询多个文档?
我正在使用 Node.js SDK。
【问题讨论】:
-
您对结果应该有多近有期望吗?如果要尝试的一件事是对比最近某个时间点更新的所有内容进行简单查询,则从结果集中挑选出您想要的项目。
-
@NoahStahl 每个索引的文档都是随机存储的。所以我认为简单的查询很难,但我会尝试。谢谢你的提示。
-
SELECT c.data.index,max(c._ts) as _ts FROM c group by c.data.index但无法返回 * -
@TinyWang 我试过查询,但花了很长时间,请求费用增加了。 (大约 200,000 RU)可能是大量文档的原因吗?
-
我不是这个原因,我从来没有遇到过这么大的数据目标QAQ.....@NoahStahl 先生你能给点建议吗?我认识你是 Cosmosdb 的专家。非常感谢您的任何建议。
标签: sql node.js azure azure-cosmosdb