MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Използване на Mongo / BSON ObjectId с Parse Server

Открих как Parse сървърът генерира нов идентификатор при създаване тук .Документацията за коментари по-горе посочва, че функцията по-долу се извиква, за да генерира нов идентификатор за Parse Server.

Все още не знам защо трябва да създава идентификатор по свой начин, вместо да използва родния на Mongo. Това ще помогне за лесно премахване на зависимостта от Parse Server.

Моля, намерете кода по-долу в c#, ​​който използвам за генериране на нов идентификатор като сървъра за анализ. Не съм го тествал с всички аспекти, но мисля, че ще премине повечето, ако не и всички тестови случаи на други.

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

Надявам се този примерен код да ви помогне да пресъздадете логиката на предпочитания от вас език.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Грешка в текстовия индекс на MongoDB:замяната на езика не се поддържа

  2. Flask mongoengine се свързва чрез uri

  3. Как да съхранявате таблица с определена колона, която трябва да се съхранява в масив и да я извлича в Angularjs (среден стек)

  4. Как обработваме приоритета на заявките в express/nodejs?

  5. Symfony QueryBuilder връща MongoDB курсор вместо обектен масив