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

mongodbデータベースの名前を変更する方法

    私は自分に合った解決策を思いついた。確かに、私はより小さなデータベースを扱っていますが、これで問題を解決できる場合もあります。

    /// <summary>
    ///  Renames old database to new database by copying all its collected contents
    ///  ToDO: Add checks and balances to ensure all items were transferred correctly over
    ///  Disclaimer: use at own risk and adjust to your needs
    /// </summary>
    /// <param name="currentName"></param>
    /// <param name="newName"></param>
    public void renameDatabase(string currentName, string newName)
    {
    
        this.mongoClient.DropDatabase(newName); //we drop the new database in case it exists
    
        var newDb = mongoClient.GetDatabase(newName); //get an instance of the new db
    
        var CurrentDb = mongoClient.GetDatabase(currentName); //get an instance of the current db
    
        foreach (BsonDocument Col in CurrentDb.ListCollections().ToList()) //work thru all collections in the current db
        {
            string name = Col["name"].AsString; //getting collection name
    
            //collection of items to copy from source collection
            dynamic collectionItems = CurrentDb.GetCollection<dynamic>(name).Find(Builders<dynamic>.Filter.Empty).ToList();
    
            //getting instance of new collection to store the current db collection items
            dynamic destinationCollection = newDb.GetCollection<dynamic>(name);
    
            //insert the source items into the new destination database collection
            destinationCollection.InsertMany(collectionItems);
        }
    
        //removing the old datbase
        this.mongoClient.DropDatabase(currentName);
    }
    


    1. MongoDBでコレクションを作成中にエラーが発生しました

    2. プッシュとスライスを使用したアレイの更新

    3. HadoopのMapReduceキー値ペアとは何ですか?

    4. mongoDBの同じAPIで同じドキュメントを並行してクエリする