MongoDB集合到.Net字典的最佳实践

时间:2012-07-19 21:59:55

标签: c# mongodb mongodb-.net-driver

我有一个应用程序可以对内存数据执行快速操作。此数据在内存中表示为Dictionary<MyKey,MyData>MyKey是一个包含几个字符串标记的类:

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

MyData是包含一些文本的对象。

我想将它存储在MongoDB中,作为以下文档的集合:

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

这样我就可以使用mongodb选择器:

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

但是编写序列化器/解串器会变得非常烦人,因为一对一的映射可以做到:

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

我觉得这是一个很常见的问题。实现这一目标的最佳解决方案是什么? 我想保留原始的Dictionary结构,但我不想为Serializer重新发明轮子。

我可以遵循任何想法/教程吗? 这甚至是我应该做的事情吗?

1 个答案:

答案 0 :(得分:2)

此表单的文档没有问题:

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

您仍然可以查询它。

db.collection.find({'mykey.tag1': 'foo1'})

这是否回答了你的问题?是否有其他特殊原因需要该文档结构?