O diretório onde está armazenado é especificado pela sua instância do mongod, não pelo seu aplicativo MVC. Ao iniciar sua instância do mongod, você deve ter algo como:
mongod.exe --dbpath [where your db is stored]
Para saber mais sobre os parâmetros do mongod.exe, dê uma olhada aqui .
O nome do seu banco de dados é especificado na string de conexão. Seria algo como:
mongodb://localhost/dbName?[options]
Você pode encontrar todas as instruções aqui .
No entanto, não sei se sou o único que acha a API do driver C# meio complicada. Para inicializar um MongoClient (objeto de banco de dados de nível superior), a maioria das pessoas usaria a maneira mais simples:
MongoClient client = new MongoClient(connStr);
Dessa forma, você nunca obterá o nome do banco de dados. Para obtê-la:
MongoUrl url = new MongoUrl(connStr);
MongoClient client = new MongoClient(url);
var dbName = url.DatabaseName // retrive database name
var db = client.GetServer().GetDatabase(dbName);
Dessa forma, você pode armazenar o nome do banco de dados com a string de conexão. O que me parece bom. Mas é claro que você pode usar outro appSetting para armazenar o nome do banco de dados.
Você não precisa. Quando você insere dados no banco de dados pela primeira vez, o mongod cria um banco de dados para você, assim como coleções. Embora mais tarde você possa achar útil criar índices em algumas das coleções.