TL;DR:Cosmos 似乎忽略了这个maxTimeMS
选项。
我正在使用 MongoDB API 处理一个相当大的分区 CosmosDB 集合(几百万个文档),并发现一些聚合在大约 10 秒后超时。我可以用非常小的窗口(即非常具体的匹配标准)进行很好的查询,但是如果我匹配 50k+ 个文档,则查询超时。如果相关,我将使用 Cosmos 添加的默认索引。
我试过maxTimeMs
在我的 Mongo 客户端上通过 (30s) 并设置各种其他超时选项,但无济于事。
作为参考,我使用的是 C# Mongo 驱动程序,命令如下:
{
"aggregate" : "MyDocuments",
"pipeline" : [{
"$match" : {
"Created" : {
"$gt" : ...,
"$lt" : ...
}
}
}, {
"$group" : {
"_id" : "$QueryTerms",
"Count" : {
"$sum" : 1
},
"FooCount" : {
"$max" : "$Foo.Count"
},
"Bar" : {
"$first" : "$Bar"
}
}
}, {
"$sort" : {
"Count" : -1
}
}],
"maxTimeMS" : 30000.0,
"cursor" : { }
}