FireDAC.Phys.MongoDBWrapper.TMongoPipeline
![TMongoPipeline](/images/Libraries/Seattle/j/8/84/FireDAC.Phys.MongoDBWrapper.TMongoPipeline.png)
Delphi
TMongoPipeline = class(TInterfacedObject, IMongoCursor)
C++
class PASCALIMPLEMENTATION TMongoPipeline : public System::TInterfacedObject
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
class | public | FireDAC.Phys.MongoDBWrapper.pas FireDAC.Phys.MongoDBWrapper.hpp |
FireDAC.Phys.MongoDBWrapper | FireDAC.Phys.MongoDBWrapper |
説明
フルーエント スタイルの MongoDB パイプライン ビルダを表します。
Project、Match、Group といったビルダの主要メソッドは、対応するパイプライン ステージ用のサブビルダを返します。
TMongoPipeline オブジェクトは、次のような状況で使用することができます。
- パイプライン オブジェクトを明示的に作成し、TMongoCollection.Aggregate メソッドに渡す。
-
- この場合、パイプライン オブジェクトを再利用することができます。
- オーバーロードされた TMongoCollection.Aggregate メソッドからパイプライン オブジェクトを受け取り、それを IMongoCursor にキャストしてパイプラインを実行し、結果セットのカーソルを取得する。
例
次のコードでは、コレクションを集約パイプラインに渡し、区(borough)ごとのドキュメント数を数える方法を示しています。出力リストは count
フィールドでソートされます。
メモ: 詳細は、MongoDB Restaurants サンプル プロジェクトを参照してください。
Delphi の場合:
var
oCrs: IMongoCursor;
oCrs := FCon['test']['restaurants'].Aggregate()
.Group
.Add('_id', '$borough')
.BeginObject('count')
.Add('$sum', 1)
.EndObject
.&End
.Sort('{ count: 1 }').&End;
C++Builder の場合:
di_IMongoCursor oCrs = interface_cast<IMongoCursor>(MongoCon->Databases["test"]->Collections["restaurants"]->Aggregate())
->Group()
->Add("_id", "$borough")
->BeginObject("count")
->Add("$sum", 1)
->EndObject()
->End()
->Sort("{ count: 1 }")->End();