Introduction
MongoDB
is a non-relational database for storing objects (or documents), it's a really nice alternative to the traditional database paradigm and allows the storage and serialization of C# classes and properties.
Here is my Quick Start Tutorial
If you don't already have a MongoDb
installation, I recommend going for the hosted option at 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. It's especially useful when you want to dump out objects structures to the screen visually, in this case MongoDB
data. You can download LinqPad at http://www.linqpad.net/.
Super Quickstart
- https://mongohq.com/home – Create a database here
- https://github.com/mongodb/mongo-csharp-driver/downloads – Download the Driver
- 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:
Now add the namespaces:
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 retrieve it again using a simple query.
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 collection = db.GetCollection<Planet>("Planet");
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