MongoDB on Asp.Net MVC3

來源:互聯網
上載者:User

晚上閑來無事,研究了一下最近很火的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.

 

補上項目下載:

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.