FireDAC.Phys.MongoDBWrapper.TMongoCollection.BeginBulk
Delphi
procedure BeginBulk(AOrdered: Boolean = True);
C++
void __fastcall BeginBulk(bool AOrdered = true);
プロパティ
| 種類 | 可視性 | ソース | ユニット | 親 | 
|---|---|---|---|---|
procedure function  | 
		public | FireDAC.Phys.MongoDBWrapper.pas FireDAC.Phys.MongoDBWrapper.hpp  | 
        FireDAC.Phys.MongoDBWrapper | TMongoCollection | 
説明
コレクションに対してバルク操作を開始します。
BeginBulk の呼び出し後、Insert、Update、Remove のいずれかを必要な回数だけ呼び出して、コレクションに適用する変更内容を定義します。バルク操作の間、これらのメソッド呼び出しでは実際のデータベースにどのような変更内容も送信せず、目的とする変更内容をメモリに記録するだけです。
目的とする変更をすべてメモリ内で適用したら、EndBulk を呼び出して、変更内容をデータベースに送信します。これでバルク操作が終了します。新しいバルク操作を開始するには、BeginBulk を再度呼び出す必要があります。
変更内容をデータベースに送信せずにバルク操作を中止するには、CancelBulk を呼び出します。
いつでも IsBulk の値を読み取って、バルク操作の途中かどうかを判定することができます(途中の場合は True、そうでない場合は False)。
例
次の例では、"La Bella Italia" という名前のレストランをコレクションから削除し、その名前の新しいレストランをコレクションに追加しています。
MongDB シェルの場合:
var bulk = db.restaurants.initializeOrderedBulkOp();
bulk.find({ name: "La Bella Italia" }).remove()
bulk.insert({
  "name": "La Bella Italia",
  "cuisine": "Italian",
  "grades": [
    {
      "date": ISODate("2015-11-02T14:38:00Z"),
      "grade": "A",
      "score": 8
    }
  ]
})
bulk.execute()
Delphi の場合:
MyCollection.BeginBulk;
MyCollection.Remove
  .Match
    .Add('name', 'La Bella Italia')
    .&End
  .Exec;
MyDocument := TMongoDocument.Create(MyConnection.Env)
  .Add('name', 'La Bella Italia')
  .Add('cuisine', 'Italian')
  .BeginArray('grades')
    .BeginObject('')
      .Add('date', ISO8601ToDate('2015-11-02T14:38:00Z'))
      .Add('grade', 'A')
      .Add('score', 8)
    .EndObject
  .EndArray;
MyCollection.Insert(MyDocument);
MyDocument.Free;
MyCollection.EndBulk;
C++ の場合:
MyCollection->BeginBulk();
MyCollection->Remove()
  ->Match()
    ->Add("name", String("La Bella Italia"))
    ->End()
  ->Exec();
TMongoDocument* MyDocument = new TMongoDocument(MyConnection->Env);
MyDocument
  ->Add("name", String("La Bella Italia"))
  ->Add("cuisine", String("Italian"))
  ->BeginArray("grades")
    ->BeginObject("")
      ->Add("date", ISO8601ToDate("2015-11-02T14:38:00Z"))
      ->Add("grade", String("A"))
      ->Add("score", 8)
    ->EndObject()
  ->EndArray();
MyCollection->Insert(MyDocument);
delete MyDocument;
MyCollection->EndBulk();