問題タブ [azure-cosmosdb-mongoapi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - CosmosDB の Mongo Aggregation パイプラインは「maxTimeMS」をサポートしていますか?
TL;DR: Cosmos はこのmaxTimeMS
オプションを無視しているようです。
MongoDB API を使用して、かなり大きなパーティション化された CosmosDB コレクション (数百万のドキュメント) を操作していますが、一部の集計が 10 秒後にタイムアウトすることがわかりました。非常に小さなウィンドウ (つまり、非常に具体的な一致基準) で問題なくクエリを実行できますが、50,000 件以上のドキュメントに一致するとクエリがタイムアウトします。関連する場合は、Cosmos によって追加された既定のインデックスを使用しています。
maxTimeMs
(30秒)を渡し、Mongoクライアントで他のさまざまなタイムアウトオプションを設定しようとしましたが、役に立ちませんでした。
参考までに、私は C# Mongo ドライバーを使用しています。コマンドは次のとおりです。
azure - Azure VM から cosmosDB に接続しようとすると接続タイムアウトが発生する
nodeJS サーバーを実行している Azure 上に Linux VM をセットアップしました。i mongodb を使用して cosmosDB もセットアップしました。nodejs と mongo-client の両方を使用してローカル マシンから cosmosdb に接続できますが、Linux VM から nodjs を使用して cosmosdb に接続しようとすると、接続タイムアウトが発生します。
これはファイアウォール、vnet、または nsg と関係があると思いますが、Azure を初めて使用するため、修正方法がわかりません。
nsg に例外を追加して、10255 ポートでの発信接続を許可しようとしましたが、これは効果がありませんでした。また、cosmosdb を vnet に追加しようとしましたが、これも効果がありませんでした。
編集:私はこのコードのみを持つアプリでノードアプリケーションを作成しました:
ローカル コンピューターでは問題なく動作しますが、Azure VM からは接続できません。コードに違いはありません
mongodb - JSON 番号 '2L' が無効です。シャードキーは数値にシリアル化されていますが、文字列として定義されていますか?
例外:
コンストラクターによって作成された複合キーであるシャード キーの定義。
クエリ コード:
なぜこれが失敗するのですか?