好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

MongoDB

MongoDB

 

晚上闲来无事,研究了一下最近很火的MongoDB。感受只有一个:“自由”。

闲话略过,先让MongoDB在Win7 64下跑起来:

1. MongoDB主页

http://www.mongodb.org/

2. 下载

http://downloads.mongodb.org/win32/mongodb-win32-x86_64-1.8.1.zip

3. 解压

e.g. H:\mongodb-win32-x86_64-1.8.1

4. 准备目录

e.g. H:\mongo\data --保存数据库文件 H:\mongo\logs --保存log,在此目录下手动创建一个log.txt

5. 安装

Win键,输入cmd,右键-Run as Administrator

cd H:\mongodb-win32-x86_64-1.8.1\bin

H:

mongod --bind_ip 127.0.0.1 --logpath H:\mongo\logs\log.txt --logappend --dbpath H:\mongo\data --directoryperdb –install

net start “MongoDB”

成功。

6. 测试安装

在之前的CMD窗口中输入:mongo

应该能无异常进入query界面

输入一个3+3,应该能得到6

关掉cmd,这玩意儿没用了。

7. 下载.Net Connector

https://github.com/mongodb/mongo-csharp-driver/archives/master

解压

打开CSharpDriverSetup-2010.sln

Build

失败

删除DriverSetup中对CHM的引用

重新编译,成功

右键DriverSetup – Install

下一步下一步下一步。。。

8. 创建Asp.Net MVC3 Empty project

若无,请自行安装MVC3的TOOL

9. Add ConnectionString in web.config

   < connectionStrings >
     < add  name ="MongoDB"  connectionString ="mongodb://localhost/test" />

复制代码

   </  connectionStrings  >  

10. Add Controller

Controller with empty read/write actions

11. Access to the DB

         private  MongoDatabase GetDB()
        {
             return  MongoDatabase.Create(ConfigurationManager.ConnectionStrings[ " MongoDB " ].ConnectionString);

复制代码

        } 

  

12. Create Action
         [HttpPost]

         public  ActionResult Create(FormCollection collection)
        {
             try
            {
                var db  =  GetDB();
                 foreach  (var key  in  collection.AllKeys)
                {
                    db[ " testTable " ].Insert( new  MongoDB.Bson.BsonDocument{
                       {key, collection[key]}
                    });
                }

                 return  RedirectToAction( " Index " );
            }
             catch
            {
                 return  View();
            }
        }

复制代码

 13. Index Action 
  

         public  ActionResult Index()
        {
             try
            {
                var db  =  GetDB();

                var testTable  =  db[ " testTable " ].FindAll();
                var result  =   new  StringBuilder();
                 foreach  (var testData  in  testTable)
                {
                     foreach  (var property  in  testData.Names)
                    {
                        result.AppendFormat( " {0}:{1}  " , property, testData[property]);
                    }

                    result.Append( " <br /> " );
                }

                 return  Content(result.ToString());
            }
             catch
            {
                 return  View();
            }
        }

复制代码

  
 14. Create Views under Views/Home/ 
 Create.cshtml: 

@{
    ViewBag.Title = "Create";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

< h2 > Create </ h2 >

< form  method ="post"  action ="/Home/Create" >
    Name:
     < input  name ="name"  type ="text"   />< br  />
    Age:
     < input  name ="age"  type ="text"   />< br  />
    Gender:
     < input  name ="gender"  type ="text"   />< br  />
    Married:
     < input  name ="married"  type ="text"   />< br  />
     < input  type ="submit"  value ="Add"   />
</ form >

复制代码

 Index.cshtml 

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

< h2 > Index </ h2 >
< a  href ="Create" > Create New </ a >

复制代码

 15. Modify Global.asax.cs 

            routes.MapRoute(
                 " Default " ,  //  Route name
                 " {controller}/{action}/{id} " ,  //  URL with parameters
                 new  { controller  =   " Home " , action  =   " Create " , id  =  UrlParameter.Optional }  //  Parameter defaults
            );

复制代码

 11. Build & Run 
   
 

Press Add

All Done. Happy and enjoy.

补上项目下载:

https://files.cnblogs.com/pandora/MvcApplication1.zip 

当前标签: MongoDB

 

MongoDB on Asp.Net MVC3–CRUD   Pandora 2011-05-28 20:02 阅读:1769 评论:6   

 

MongoDB on Asp.Net MVC3   Pandora 2011-05-26 23:15 阅读:2922 评论:14   

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于MongoDB的详细内容...

  阅读:52次