Tôi đã tìm thấy cách Máy chủ phân tích cú pháp tạo Id mới khi tạo tại đây Tài liệu nhận xét ở trên cho biết rằng hàm dưới đây đang được gọi để tạo một id mới cho Máy chủ phân tích cú pháp.
Tôi vẫn không biết tại sao nó phải tạo id theo cách của nó thay vì sử dụng id gốc của Mongo. Nó sẽ giúp dễ dàng loại bỏ sự phụ thuộc của Máy chủ phân tích cú pháp.
Vui lòng tìm mã bên dưới trong c # mà tôi đang sử dụng để tạo id mới như máy chủ phân tích cú pháp. Tôi chưa thử nghiệm nó với tất cả các khía cạnh, nhưng tôi nghĩ nó sẽ vượt qua hầu hết nếu không phải là tất cả các trường hợp thử nghiệm của những người khá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);
}
Tôi hy vọng mã mẫu này giúp tạo lại logic bằng ngôn ngữ ưa thích của bạn.