MongoDB:连接ASP.NET MVC应用程序

时间:2014-04-28 21:35:48

标签: asp.net-mvc mongodb

我创建了一个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服务中运行?

1 个答案:

答案 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对某些集合很有用。