FireDAC.Phys.MongoDBWrapper.TMongoCollection.BeginBulk

提供: RAD Studio API Documentation
移動先: 案内検索

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 の呼び出し後、InsertUpdateRemove のいずれかを必要な回数だけ呼び出して、コレクションに適用する変更内容を定義します。バルク操作の間、これらのメソッド呼び出しでは実際のデータベースにどのような変更内容も送信せず、目的とする変更内容をメモリに記録するだけです。

目的とする変更をすべてメモリ内で適用したら、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();

関連項目