sql >> データベース >  >> NoSQL >> MongoDB

解析サーバーでのMongo/BSONObjectIdの使用

    解析サーバーが作成時に新しいIDを生成する方法を見つけましたここ 。上記のコメントドキュメントには、ParseServerの新しいIDを生成するために以下の関数が呼び出されていることが記載されています。

    MongoのネイティブIDを使用するのではなく、その方法でIDを作成する必要がある理由はまだわかりません。解析サーバーの依存関係を簡単に削除するのに役立ちます。

    解析サーバーのような新しいIDを生成するために使用している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. mongoimportを使用してCSVファイルをMongoDBにインポートします

    2. 別のマシンからコピーされたスナップショット(rdbファイル)からredisデータを回復するにはどうすればよいですか?

    3. 負荷がかかった状態でMongoDBのパフォーマンスが遅い

    4. socket.ioでredis接続を再利用する方法は?