• MongoDB on Asp.Net MVC3


    MongoDB on Asp.Net MVC3

    晚上闲来无事,研究了一下最近很火的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>
    <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
    image
     

    Press Add

    image

    All Done. Happy and enjoy.

    补上项目下载:

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

  • 相关阅读:
    Java ConcurrentModificationException 异常分析与解决方案
    android studio 怎么做屏幕适配?
    java Class.getSimpleName() 的用法
    LeetCode——Remove Element
    用WidgeDuino创建一个SCADA(监控与数据採集)系统
    【Oracle】OCR的备份和恢复之导出导入
    Java大数类介绍
    POJ 1113 Wall 凸包
    OPENCV中滑动条的使用
    Android
  • 原文地址:https://www.cnblogs.com/xgbzsc/p/mongoDB.html
Copyright © 2020-2023  润新知