FireDAC.Phys.MongoDBWrapper.TMongoCollection.BeginBulk
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();