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"})

しかし、1 対 1 のマッピングで済むため、シリアライザー/デシリアライザーを記述するのは非常に面倒です。

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

これはかなり一般的な問題のように感じます。これを達成するための最良の解決策は何ですか?元のディクショナリ構造を維持したいのですが、シリアライザの車輪を再発明したくありません。

私が従うことができるアイデア/チュートリアルはありますか? これは私がしなければならないことでもありますか?

4

1 に答える 1

2

この形式のドキュメントには問題はありません:

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

引き続きクエリを実行できます。

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

これはあなたの質問に答えていますか?そのドキュメント構造が必要な別の特定の理由はありますか?

于 2012-07-19T22:14:02.800 に答える