J'ai trouvé comment le serveur d'analyse génère un nouvel identifiant lors de la création ici .La documentation des commentaires ci-dessus indique que la fonction ci-dessous est appelée pour générer un nouvel identifiant pour Parse Server.
Je ne sais toujours pas pourquoi il doit créer un identifiant à sa manière plutôt que d'utiliser celui natif de Mongo. Cela aidera à supprimer facilement la dépendance au serveur d'analyse.
Veuillez trouver le code ci-dessous en c # que j'utilise pour générer un nouvel identifiant comme le serveur d'analyse. Je ne l'ai pas testé sous tous ses aspects mais je pense qu'il passera la plupart sinon tous les cas de test des autres.
/// <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);
}
J'espère que cet exemple de code vous aidera à recréer la logique dans votre langue préférée.