非常にシンプルなmongo DB(カップル100エントリ)をAzure Cosmos DBに移行しています。私のアプリはnode-jsに基づいているため、マッパーとしてマングースを使用しています。本当にシンプルになる前に、スキーマを定義し、コレクションをクエリし、終了しました。
Cosmos dbでコレクションを設定するときに、パーティションキーとシャードキーについて尋ねられました。最初のものは無視できましたが、最後のものは必須でした。そのトピックをすばやく読み、それが一種のパーティショニングであると理解しました(ここでも、私は必要も必要もありません)。シャードキーとして_idを選択しました。
もちろん、何かがうまくいきません。
検索クエリは問題なく動作しますが。レコードの更新または挿入が失敗しました。以下はエラーです。
MongoError:コマンドのクエリは単一のシャードキーをターゲットにする必要があります
Cosmos db(mongo APIを使用)は、ドロップイン代替品として私に宣伝されました。特にこのような小規模なapp/dbについては、mongoでそのようなことを心配する必要がなかったため、明らかにそうではありません。
それで、どうにかしてシャーディングを無効にできますか?別の方法として、今後シャードキーを定義し、それについてまったく心配しないようにするにはどうすればよいですか?
乾杯
最大10 GBの固定ストレージでCosmosDBコレクションを作成できます。その場合、ストレージはスケーラブルではなく、CosmosDBからエラーを受信しないため、コレクションをシャーディングする必要はありません。ただし、最小スループットが400であるため、コストがわずかに高くなる可能性があります。