FireDAC.Phys.MongoDBWrapper.TMongoCollection.BeginBulk

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

procedure BeginBulk(AOrdered: Boolean = True);

C++

void __fastcall BeginBulk(bool AOrdered = true);

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
procedure
function
public
FireDAC.Phys.MongoDBWrapper.pas
FireDAC.Phys.MongoDBWrapper.hpp
FireDAC.Phys.MongoDBWrapper TMongoCollection


Beschreibung

Startet eine Massenoperation für die Sammlung.

Rufen Sie nach BeginBulk Insert, Update und Remove so oft wie benötigt auf, um die Änderungen, die für die Sammlung übernommen werden sollen, festzulegen. Während der Massenoperation übermitteln diese Aufrufe keine Änderungen an die eigentliche Datenbank, sie zeichnen die beabsichtigten Änderungen lediglich im Arbeitsspeicher auf.

Wenn Sie alle gewünschten Änderungen in den Arbeitsspeicher übernommen haben, rufen Sie EndBulk auf, um die Änderungen an die Datenbank zu übermitteln. Dadurch wird die Massenoperation beendet. Um eine neue Massenoperation zu starten, müssen Sie BeginBulk erneut aufrufen.

Um eine Massenoperation ohne Übermittlung der Änderungen an die Datenbank anzubrechen, rufen Sie CancelBulk auf.

Sie können den Wert von IsBulk jederzeit auslesen, um festzustellen, ob Sie gerade eine Massenoperation durchführen (True) oder nicht (False).

Beispiel

Das folgende Beispiel entfernt alle Restaurants mit Namen "La Bella Italia" aus der Sammlung und fügt ein neues Restaurant mit diesem Namen in die Sammlung ein.

MongDB-Shell:

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();

Siehe auch