MongoDB collection to .Net dictionary best practice
===

I have an application that performs fast operations on in-memory data. This data is represented in memory as a `Dictionary<MyKey,MyData>`. The `MyKey` is a class that contains a few string tags:

    public class MyKey
    {
        string tag1;
        string tag2;
        ... 
    }

and `MyData` is an object that contains some texts.

I would like to store it in MongoDB as a collection of documents like:

    {
        tag1: "foo1",
        tag2: "foo2",
        mydata: { ... }
    },
    {
        tag1: "bar1",
        tag2: "bar2",
        mydata: { ... }
    }...

so that I can use mongodb selectors:

    db.MyCollection.find({tag1: "foo1"})

But then it becomes really annoying to write the serializer / deserializer, since a one-to-one mapping would do:

    {
        mykey: { tag1: "foo1", tag2: "foo2"},
        mydata: { ... }
    }

I feel like this is a pretty common issue. What is the best solution to achieve this?
I want to keep the original Dictionary<MyKey,MyData> structure but I don't want to reinvent the wheel for the Serializer.

Any idea / tutorial I could follow?
Is this even something I should be doing?