MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Utilizzo di Mongo/BSON ObjectId con Parse Server

Ho scoperto come il server di analisi genera un nuovo ID durante la creazione qui .La documentazione dei commenti sopra afferma che la funzione seguente viene chiamata per generare un nuovo ID per Parse Server.

Non so ancora perché debba creare un ID a suo modo piuttosto che usare quello nativo di Mongo. Aiuterà a rimuovere facilmente la dipendenza di Parse Server.

Trova il codice qui sotto in c# che sto usando per generare un nuovo ID come il server di analisi. Non l'ho testato con tutti gli aspetti, ma penso che supererà la maggior parte se non tutti i casi di test degli altri.

    /// <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);
    }

Spero che questo codice di esempio ti aiuti a ricreare la logica nella tua lingua preferita.