FireDAC.Phys.MongoDBWrapper.TMongoCollection.BeginBulk

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

procedure BeginBulk(AOrdered: Boolean = True);

C++

void __fastcall BeginBulk(bool AOrdered = true);

Propriétés

Type Visibilité  Source Unité  Parent
procedure
function
public
FireDAC.Phys.MongoDBWrapper.pas
FireDAC.Phys.MongoDBWrapper.hpp
FireDAC.Phys.MongoDBWrapper TMongoCollection


Description

Démarre une opération de masse sur la collection.

Après avoir appelé BeginBulk, appelez Insert, Update et Remove autant de fois que nécessaire pour définir les changements que vous voulez appliquer à la collection. Pendant l'opération de masse, ces appels ne soumettent aucun changement dans la base de données actuelle, ils enregistrent simplement l'intention de changement dans la mémoire.

Une fois tous les changements souhaités appliqués dans la mémoire, appelez EndBulk pour les soumettre dans la base de données. L'opération de masse est alors terminée. Pour démarrer une nouvelle opération de masse, vous devez à nouveau appeler BeginBulk.

Pour abandonner une opération de masse sans soumettre aucun changement dans la base de données, appelez CancelBulk.

Vous pouvez lire la valeur de IsBulk à tout moment pour déterminer si vous définissez une opération de masse (True) ou non (False).

Exemple

L'exemple suivant retire tout restaurant nommé "La Bella Italia" de la collection, et ajoute un nouveau restaurant portant ce nom à la collection.

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

Voir aussi