MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Usando Mongo / BSON ObjectId com Parse Server


Descobri como o Parse Server gera um novo ID na criação aqui .A documentação do comentário acima afirma que a função abaixo está sendo chamada para gerar um novo id para o Parse Server.

Eu ainda não sei por que ele tem que criar um id do seu jeito ao invés de usar o nativo do Mongo. Isso ajudará a remover facilmente a dependência do Parse Server.

Por favor, encontre o código abaixo em c# que estou usando para gerar um novo id como o servidor de análise. Eu não testei com todos os aspectos, mas acho que passará na maioria, se não em todos os casos de teste dos outros.
    /// <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);
    }

Espero que este código de exemplo ajude a recriar a lógica em seu idioma preferido.