Click here to Skip to main content
15,881,173 members
Articles / Database Development / NoSQL

Using MongoDB with the Official C# Driver

Rate me:
Please Sign up or sign in to vote.
4.87/5 (28 votes)
24 Oct 2011CPOL6 min read 152.1K   3.9K   55  
Introduces how to use MongoDB in your ASP.NET MVC project using the official C# driver.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

using MongoDB.Driver;
using MongoDB.Bson;
using IntroMongo.Models;
using MongoDB.Driver.Builders;

namespace IntroMongo.Controllers
{
    public class UserController : Controller
    {
        public ActionResult Index()
        {
            // Get all users by sorting by createdate
            var users = MongoWrapper.GetDatabase().
                            GetCollection("users").
                            FindAll().
                            SetSortOrder(SortBy.Descending("createdate"));

            return View(users);
        }

        public ActionResult Edit(string id)
        {
            // Obtain id compatible with MongoDB to query
            var objectId = ObjectId.Parse(id);

            // Get user by id
            var user = MongoWrapper.GetDatabase().
                            GetCollection("users").
                            FindOneByIdAs<User>(ObjectId.Parse(id));

            return View(user);
        }

        [HttpPost]
        public ActionResult Edit(string id, User userToEdit)
        {
            // Get user collection reference
            var users = MongoWrapper.GetDatabase().GetCollection("users");

            // Update user by id
            var user = users.FindOneById(ObjectId.Parse(id));

            user["firstname"] = userToEdit.FirstName;
            user["lastname"] = userToEdit.LastName;
            user["age"] = userToEdit.Age;

            // Update user object
            users.Save(user);

            return RedirectToAction("Index");
        }

        public ActionResult New()
        {
            return View();
        }

        [HttpPost]
        public ActionResult New(string id, User userToEdit)
        {
            // Get user collection reference
            var users = MongoWrapper.GetDatabase().GetCollection("users");

            // Create BsonDocument object for new user
            var user = new BsonDocument();
            user["firstname"] = userToEdit.FirstName;
            user["lastname"] = userToEdit.LastName;
            user["age"] = userToEdit.Age;
            user["createdate"] = DateTime.Now;

            // Insert new user object to collection
            users.Insert(user);

            return RedirectToAction("Index");
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer
Turkey Turkey
I am interested in innovation and creativity in software development and passionate in learning new stuff.

Comments and Discussions