MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Verwenden von Mongo / BSON ObjectId mit Parse Server

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.