MongoDB is a non-relational database for storing objects (or documents), its a really nice alternative to the traditional database paradigm and allows the storage and serialisation of C# classes and properties.

Here is my quick start tutorial: 

If you dont already have a MongoDb installation I recommend going for the hosted option here: https://mongohq.com/home (free option available)

You then need to download the official 10gen C# driver: https://github.com/mongodb/mongo-csharp-driver/downloads 

Finally you should download Linqpad, I really love this app, you can use it as a c# scratchpad to rapidly mess about with any new libraries or code bases and is a great alternative to running a console app. Just edit your code and hit F5 to run the app. Its especially useful when you want to dump out objects structures to the screen visually, in this case MongoDB data. You can download LinqPad here: http://www.linqpad.net/

Super Quickstart:

  1. https://mongohq.com/home – Create a database here 
  2. https://github.com/mongodb/mongo-csharp-driver/downloads – Download the Driver
  3. http://www.linqpad.net/ – Download this badboy

Configuring Linqpad

There is a quick configuration element to Linqpad, we have to add the driver Dll reference and namespace: 

First add the Dlls

linqpad1.JPG

Now add the namespaces:

linqpad2.JPG

Mongolific! Now we are ready to rock and roll! 

Here is a simple example to insert a document (an object class) into a table, and then retreive it again using a simple query.

linqpad3.JPG

Here is the code for copy and paste land

void Main()
{
    var server = MongoServer.Create("mongodb://law:pass@pearl.mongohq.com:27071/");

    var db = server.GetDatabase("Universe");

    var pluto = new Planet()
    {
        Name = "Pluto",
        Colour = "Purple";

    };

    collection.Insert(pluto);

    var query = Query.And(Query.EQ("Name", "Pluto"));

    var list = collection.Find(query).ToList();

    list.Dump();
}

public class Planet
{
    public ObjectId  Id { get; set; }
    public string Name { get; set; }
    public string Colour { get; set; }
} 

  Simples!  

.Net silicon valley
推荐.NET配套的通用数据层ORM框架:CYQ.Data 通用数据层框架