TL;DR: Cosmos はこのmaxTimeMS
オプションを無視しているようです。
MongoDB API を使用して、かなり大きなパーティション化された CosmosDB コレクション (数百万のドキュメント) を操作していますが、一部の集計が 10 秒後にタイムアウトすることがわかりました。非常に小さなウィンドウ (つまり、非常に具体的な一致基準) で問題なくクエリを実行できますが、50,000 件以上のドキュメントに一致するとクエリがタイムアウトします。関連する場合は、Cosmos によって追加された既定のインデックスを使用しています。
maxTimeMs
(30秒)を渡し、Mongoクライアントで他のさまざまなタイムアウトオプションを設定しようとしましたが、役に立ちませんでした。
参考までに、私は 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" : { }
}