在现代Web开发中,MongoDB作为一种流行的NoSQL数据库,因其灵活的文档模型和高性能而受到开发者的青睐。本文将介绍如何在Windows环境下安装MongoDB,并使用ASP.NET创建一个简单的应用程序来从MongoDB数据库检索数据。
在Windows上安装MongoDB是一个简单的过程。请按照以下步骤操作:
1. 从下载MongoDBfor Windows。
2. 64位2008R2+版本非常有用,因为它使用了Windows API中的'slim'。
3. 64位2008R2+版本需要在WINDOWS SERVER 2008 R2及更高版本和WINDOWS 7及更高版本上运行。如果不满足这些要求,请使用其他版本。中间数字的偶数表示稳定版本。
4. 下载.zip文件后,将其解压缩。里面会有一个bin文件夹。
5. 在C:目录下创建一个文件夹,将其重命名,并将bin文件夹中的所有文件复制到这个文件夹中。
6. 至此,MongoDB已经安装完成。文件夹中有许多文件,但关键文件包括:
- mongod.exe:Mongo数据库服务
- mongo.exe:管理Shell
- mongos.exe:分片控制器
接下来,将启动MongoDB并创建一个数据库...
7. 打开命令提示符,转到mongodb的目录(即复制bin文件夹内容的文件夹)。对于示例,文件夹名称为‘mongodb2_4’。
8. 输入‘mongod’并按Enter键。MongoDB服务将启动,并默认使用端口27017。
9. 现在打开另一个命令提示符,转到mongodb的目录。输入‘mongo localhost\test’。此命令将简单地创建一个名为‘test’的数据库。
MongoDB是无模式的,不包含表格或关系。它维护数据的集合。所以,为了保持简单,将在‘test’数据库中创建一个名为‘Persons’的集合,其中包含一个人,personId=P1,Name=Anonymous。只需输入以下命令:
db.persons.insert({personId: "P1", Name: "Anonymous"});
现在,‘test’数据库包含了一个名为‘Persons’的集合,其中包含一个人。
这个简单的ASP.NET应用程序包含一个名为‘create.aspx’的页面,上面有一个按钮和一个标签。
1. 首先,使用包管理器控制台添加“mongocsharpdriver”。
2. 需要为MongoDB服务器定义一个连接字符串。默认情况下,它运行在27017端口上,如果指定了其他端口,请进行更改。在‘web.config’文件的‘’内部添加以下代码:
<appSettings>
<add key="connectionString" value="Server=localhost:27017"/>
</appSettings>
3. 现在,应用程序已经准备好与MongoDB通信了。
4. ‘Show Names’按钮的点击事件将从‘test’数据库的‘Persons’集合中检索数据。为此,让执行以下任务...
5. 创建帮助类:‘Info’类包含_id(ObjectId类型)和MongoDB.Bson,personId、Name(都是字符串类型)。
public class Info
{
public ObjectId _id { get; set; }
public string personId { get; set; }
public string Name { get; set; }
}
6. 获取数据:在‘Show Names’按钮的点击事件中声明一个名为‘names’的List,类型为‘Info’类。
List<Info> names = new List<Info>();
7. 使用连接字符串创建MongoServer的实例。
MongoServer server = MongoServer.Create(ConfigurationManager.AppSettings["connectionString"]);
8. 获取数据库名称:
MongoDatabase myDB = server.GetDatabase("test");
9. 现在,准备好从‘test’数据库中获取‘persons’集合:
MongoCollection<Info> Persons = myDB.GetCollection<Info>("persons");
10. 遍历集合,获取个人并将其添加到‘names’列表中:
foreach (Info Aperson in Persons.FindAll())
{
name = name + "" + Aperson.Name;
names.Add(Aperson);
}
为了简单起见,只从集合中获取名称,并使用nameLabel显示它:
nameLabel.Text = name;