私のアプリでは、mongo に ObjectId メソッドを介して注文 ID を生成させています。
しかし、ユーザー テストでは、注文 ID が人間的に「威圧的」であるという懸念がありました。つまり、注文について電話で誰かと話し合う必要がある場合、24 文字の英数字を読み上げるのは少し面倒です。
同時に、「人間がアクセスできる」IDとmongoが内部で使用するIDの2つの異なるIDを保存する必要はありません。
だから私の質問はこれです - mongo objectId 文字列の長さ6または8の部分文字列を選択して、一意であると確信できる方法はありますか?
たとえば、このようなmongo objectidがある場合
id = '4b28dcb61083ed3c809e0416'
多分私は取ることができた
human_id = id.substr(0,7);
そして、注文に対して常に一意のIDを取得するようにしてください...
もちろん、利点は、これらが注文であり、人間が作成したものであり、ミリ秒あたり数百万ではないことです。一方、2 つの注文が同じ短縮 ID を持っていたら、それは本当に問題になります...
--- 分かりやすい説明 ---
私の質問をするより良い方法はこれだと思います:
たとえば、mongo id の最後の 6 文字だけを使用することにした場合、これらの 6 文字だけが特定の週に繰り返される「確率」の尺度はありますか?
特定の数の mongo が並行して実行されている場合、週に特定の数のユーザーがいる場合など。