我创建了一个ASP.NET MVC 5应用程序,我在IIS 7上托管它。我现在想开始在这个应用程序中使用MongoDB数据库。我已经设法让MongoDB Windows服务运行,但我现在不知道下一步是什么。
即:
i)如何在ASP.NET MVC应用程序中指定数据库的名称以及存储它的目录?
ii)如何在MongoDB中创建此数据库?
在我的Web.config文件中,我有以下几行:
<connectionStrings>
<add name="Mongo" connectionString="mongodb://localhost" />
</connectionStrings>
和
<appSettings>
<add key="DbName" value="mydb" />
<add key="MONGOHQ_URL" value="mongodb://localhost" />
</appSettings>
那么我现在该如何创建一个名为mydb
的数据库,使其在MongoDB Windows服务中运行?
答案 0 :(得分:2)
i)如何在ASP.NET MVC应用程序中指定数据库的名称以及存储它的目录?
存储它的目录由您的mongod实例指定,而不是您的MVC应用程序。当你启动你的mongod实例时,你应该有类似的东西:
mongod.exe --dbpath [where your db is stored]
要了解有关mongod.exe参数的更多信息,请查看here 数据库的名称在连接字符串中指定。它会是这样的:
mongodb://localhost/dbName?[options]
您可以找到整个说明here 但是,我不知道我是否是唯一一个发现C#驱动程序API的人。要初始化MongoClient(顶级数据库对象),大多数人会采用最简单的方式:
MongoClient client = new MongoClient(connStr);
这样你永远不会得到数据库名称。得到它:
MongoUrl url = new MongoUrl(connStr);
MongoClient client = new MongoClient(url);
var dbName = url.DatabaseName // retrive database name
var db = client.GetServer().GetDatabase(dbName);
这样您就可以使用连接字符串存储数据库名称。这对我来说似乎很好。但您当然可以使用另一个appSetting来存储数据库名称。
ii)如何在MongoDB中创建此数据库?
你不必。当您第一次将数据插入数据库时,mongod将为您创建数据库以及集合。虽然稍后您可能会发现build indexes对某些集合很有用。