我有一个应用程序可以对内存数据执行快速操作。此数据在内存中表示为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重新发明轮子。
我可以遵循任何想法/教程吗? 这甚至是我应该做的事情吗?
答案 0 :(得分:2)
此表单的文档没有问题:
{
mykey: { tag1: "foo1", tag2: "foo2"},
mydata: { ... }
}
您仍然可以查询它。
db.collection.find({'mykey.tag1': 'foo1'})
这是否回答了你的问题?是否有其他特殊原因需要该文档结构?