2

このQ&A MongoDB Normクエリのネストされたオブジェクトを見ましたが、強く型付けされたオブジェクトにのみ適用されるようです。

Expandoオブジェクト(https://github.com/atheken/NoRM/wiki/expando)のネストされたフィールドを検索または更新する方法はありますか?基本的に、開発者がドキュメントオブジェクトをサーバーに保存し、Flashクライアントにサービスを提供できるようにするシンプルなJSONCMSツールがあります。開発者がJSONオブジェクトを作成して保存し、ネストされたクエリを作成し、これらのオブジェクトを更新できるシンプルなサービスを提供する必要があります。

データ構造がわからないので、MongoDBを使うのに最適な場所だと思いました。残念ながら、.Netは強く型付けされたデータ構造に適しているようです。

何か案は?ありがとうございました!

4

2 に答える 2

4

アンドリューが言ったように、コンパイル時にドキュメントタイプが不明であるため、expando オブジェクトのインテリジェンスサポートは得られません。代わりに、このようにクエリできます

            var query = new Expando();
            query["comments.Author"] = Q.Equals("R");
            Mongo mongo = new Mongo(connection);
            var reer = mongo.GetCollection<Expando>("Blog").Find(query).ToList();

説明:

これは、埋め込まれたドキュメントコメント(comments.Author="R")をクエリして、すべてのブログドキュメントを取得します 。

于 2010-09-14T13:10:04.297 に答える
1

GetCollection("collectionName") または GetCollection("collectionName") だけで、すべての標準操作を実行できます。Expando を使用することの欠点は、インテリセンスや LINQ を取得できないことですが、あなたの場合は問題ありません。

于 2010-09-14T12:31:31.763 に答える