Azure cosmosdb 如何并行查询不同类型的文档?

Azure cosmosdb 如何并行查询不同类型的文档?,azure-cosmosdb,Azure Cosmosdb,我正在使用COSMOSDB(DocumentDB)和.NETCore。假设我必须使用完全不同的文档(简化示例): 要获得所有这些,我可以逐个运行两个查询: var markets = client.CreateDocumentQuery<Market>() .Where(x => x.DocumentType == "market").ToList() var cities = client.CreateDocumentQuery<City>() .Where(x

我正在使用COSMOSDB(DocumentDB)和.NETCore。假设我必须使用完全不同的文档(简化示例):

要获得所有这些,我可以逐个运行两个查询:

var markets = client.CreateDocumentQuery<Market>()
.Where(x => x.DocumentType == "market").ToList()

var cities = client.CreateDocumentQuery<City>()
.Where(x => x.DocumentType == "city").ToList()

有什么内置功能可以让我受益吗?

Cosmos没有内置功能允许您从服务器端并行执行多个查询。您使用
任务并行等待它们的方法。当客户端应用程序中的所有
都是正确的方法时

唯一的另一种选择是创建一个自定义存储过程,该过程可以聚合多个查询的结果,但根据您正在展示的示例,我认为无论是速度还是RU消耗都不会有任何好处

var markets = client.CreateDocumentQuery<Market>()
.Where(x => x.DocumentType == "market").ToList()

var cities = client.CreateDocumentQuery<City>()
.Where(x => x.DocumentType == "city").ToList()
var markets = QueryMarkets(); // returns Task    
var cities = QueryCities(); // returns Task
Task.WhenAll(markets, cities); //execute in parallel