0

我有一个对内存数据执行快速操作的应用程序。此数据在内存中表示为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 重新发明轮子。

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

4

1 回答 1

2

这种形式的文件没有问题:

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

您仍然可以查询它。

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

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

于 2012-07-19T22:14:02.800 回答