我正在使用 Azure Cosmos Document DB 并希望在一次调用中获取多个文档。
我明白,如果您有文档的 id,检索文档的最佳方法是使用 DocumentClient.ReadDocumentAsync(...)
我想知道是否有类似的方法来获取多个文档?现在我正在做一个DocumentClient.CreateDocumentQuery<T>(...).Where(document => ids.Contains(document.id))
有谁知道这是执行此操作的首选方法还是有其他方法?
您使用 CreateDocumentQuery 的第二种方法效果很好。如果您正在使用分区集合并查询跨分区,并且具有唯一的每个文档分区键和一个 id,我已经观察到更好的性能约束对分区键而不是 id 的约束,即使两者都是唯一的。如果您的 id 也是您的分区键,那么这应该无需特别努力即可工作。
如果要检索许多文档,则需要将 ids 集合分成批次以避免生成的 SQL 表达式(长 IN 语句)的长度限制。我在当前项目中使用 500 个批次,但这取决于您的 id 的长度。您可以并行发布多个批次。
| 归档时间: |
|
| 查看次数: |
3333 次 |
| 最近记录: |