0

私は kinvey (BAAS) のドキュメントを調べていて、Map/reduce を使用した集約の概念に出くわしました。

http://docs.kinvey.com/rest-aggregation.html

Kinvey には .Net SDK がないため、Rest API を使用するしかありません。私は REST API に精通していますが、ドキュメント (上記のリンク) に従って、C# バックエンド コードの API 要求パラメーターで Map/Reduce 構文を構築するにはどうすればよいですか?

作成したい Windows Phone アプリには、バックエンドに C# コードがあります。アプリに表示したい集計モジュール/データ ポイントがいくつかあります。linq を使用してコードで処理を行うのではなく、MongoDB で実行される kinvey が提供する Map/reduce 機能を利用したかったのです。

誰かがそれに光を当てることができれば幸いです。

ありがとうラフル

4

1 に答える 1

1

に POST リクエストを送信します/appdata/:appKey/:collectionName/_group。ここで、:appkey はアプリ ID、:collectionName は集計を実行する特定のコレクションです。

次に、本文で map/reduce パラメータを指定します。

{
  "key": {
    "lastName":true
  },
  "initial": {
    "count": 0
  },
  "reduce": "function(doc,out){ out.count++;}",
  "condition": {
    "age": { "$gt":31 }
  }
}

この例では、" key" は、集計されるエンティティ列名を指定します。ほとんどの場合、実行するのは 1 つだけですが、複数指定することもできます。" initial" は、reduce の開始値をシードします。これはカウントの例であるため、ゼロから開始されます。" reduce" は JavaScript 関数です。docエンティティ ( ) と戻りオブジェクト ( )を渡しますout。人数ではなく全員の年齢を合計したい場合は、次のようになりますout.count += doc.age。最後に、オプションの " condition" を指定できます。これはクエリ言語を使用したフィルターで、条件を満たすエンティティのみが評価されます。

参考までに、MongoDB アグリゲーションのドキュメントを次に示します。そこにリストされているすべてのものにアクセスできるはずですhttp://www.mongodb.org/display/DOCS/Aggregation

また、クエリ構文に関する Kinvey ドキュメント: http://docs.kinvey.com/rest-filtering.html (これは、POST uri ではなく、body オブジェクトの条件の一部であることを思い出してください)。

必要に応じて、Dicitonary から JSON への変換に関する質問があります。C#で辞書をJSON文字列に変換するにはどうすればよいですか?

于 2012-09-15T14:25:52.433 に答える