解析サーバーが作成時に新しいIDを生成する方法を見つけました
MongoのネイティブIDを使用するのではなく、その方法でIDを作成する必要がある理由はまだわかりません。解析サーバーの依存関係を簡単に削除するのに役立ちます。
解析サーバーのような新しいIDを生成するために使用しているc#の以下のコードを見つけてください。すべての側面でテストしたわけではありませんが、他のテストケースのすべてではないにしてもほとんど合格すると思います。
/// <summary>
/// Randoms the string.
/// </summary>
/// <param name="length">The length.</param>
/// <returns></returns>
public static string RandomString(int length)
{
string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789";
StringBuilder res = new();
using (RNGCryptoServiceProvider rng = new())
{
byte[] uintBuffer = new byte[sizeof(uint)];
while (length-- > 0)
{
rng.GetBytes(uintBuffer);
uint num = BitConverter.ToUInt32(uintBuffer, 0);
res.Append(chars[(int)(num % (uint)chars.Length)]);
}
}
return res.ToString();
}
/// <summary>
/// Gets the new object identifier.
/// </summary>
/// <param name="size">The size.</param>
/// <returns></returns>
public static string GetNewObjectId(int size = 10)
{
return RandomString(size);
}
このサンプルコードが、好みの言語でロジックを再現するのに役立つことを願っています。