Ich habe herausgefunden, wie der Parse-Server bei der Erstellung eine neue ID generiert hier .Die obige Kommentardokumentation gibt an, dass die folgende Funktion aufgerufen wird, um eine neue ID für den Parse-Server zu generieren.
Ich weiß immer noch nicht, warum es eine ID auf seine Weise erstellen muss, anstatt die native von Mongo zu verwenden. Es soll helfen, die Parse-Server-Abhängigkeit einfach zu entfernen.
Bitte finden Sie den Code unten in c#, den ich verwende, um eine neue ID wie den Parse-Server zu generieren. Ich habe es nicht mit allen Aspekten getestet, aber ich denke, es wird die meisten, wenn nicht alle Testfälle anderer bestehen.
/// <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);
}
Ich hoffe, dass dieser Beispielcode dabei hilft, die Logik in Ihrer bevorzugten Sprache nachzubilden.