FireDAC.Phys.MongoDBWrapper.TMongoCollection

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

FireDAC.Phys.MongoDBWrapper.TMongoObjectSystem.TObjectTMongoCollection

Delphi

TMongoCollection = class(TMongoObject)

C++

class PASCALIMPLEMENTATION TMongoCollection : public TMongoObject

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
class public
FireDAC.Phys.MongoDBWrapper.pas
FireDAC.Phys.MongoDBWrapper.hpp
FireDAC.Phys.MongoDBWrapper FireDAC.Phys.MongoDBWrapper


Beschreibung

Repräsentiert eine MongoDB-Sammlung.

TMongoCollection kapselt die Struktur mongoc_collection_t von MongoDB.

Sie können keine Instanz von TMongoCollection direkt erstellen. Sie müssen stattdessen einen der folgenden Member von TMongoConnection und TMongoDatabase verwenden:

TMongoCollection stellt schreibgeschützte Eigenschaften für den Zugriff auf grundlegende Daten über die Sammlung bereit:

Mit den folgenden Membern können Sie Daten aus der Sammlung abfragen:

Mit den folgenden Membern können Sie die Daten der Sammlung bearbeiten:

  • Insert, um ein neues Dokument einzufügen. Nach dem Aufruf von Insert können Sie die Objekt-ID des eingefügten Dokuments aus der Eigenschaft LastID der Sammlung auslesen.
  • Remove, um ein vorhandenes Dokument zu löschen. Sie können auch mit RemoveAll alle Dokumente aus der Sammlung entfernen oder mit Drop die Sammlung selbst aus der Datenbank entfernen.
  • Update, um vorhandene Dokumente zu ändern.
  • CreateIndex, um einen Index in der Sammlung zu erstellen, oder DropIndex, um einen Index zu entfernen.
  • Rename, um den Namen der Sammlung und ihrer Datenbank zu ändern.

Bei jedem Aufruf von Insert, Remove oder Update übermittelt TMongoCollection die Änderungen an die Datenbank. So führen Sie mehrere Änderungen durch und übermitteln sie auf einmal an die Datenbank:

  1. Rufen Sie BeginBulk auf, um eine Massenoperation zu starten.
  2. Rufen Sie Insert, Remove oder Update so oft wie benötigt auf, um alle Änderungen lokal vorzunehmen.
  3. Rufen Sie EndBulk auf, um die Massenoperation zu übermitteln.

Sie können CancelBulk aufrufen, um eine Massenoperation, die Sie mit BeginBulk gestartet haben, abzubrechen. Sie können den Wert von IsBulk auslesen, um festzustellen, ob gerade eine Massenoperation durchgeführt wird (True) oder nicht (False).

TMongoCollection stellt Eigenschaften bereit, die die Anzahl der eingefügten (DocsInserted), übereinstimmenden (DocsMatched), geänderten (DocsModified), entfernten (DocsRemoved) oder als Teil einer Aktualisierung eingefügten (DocsUpserted) Dokumente angeben. TMongoCollection aktualisiert die Werte dieser Eigenschaften nach jeder Übermittlung von Daten an die Datenbank.

Verwenden Sie eine der folgenden Methoden, um Datenbankbefehle (EN) für die Sammlung auszuführen:

Mit den folgenden Eigenschaften konfigurieren Sie die Semantik zu Lesen und Schreiben der Replikatgruppe (EN):

Bestimmte Methoden unterstützen zwei verschiedene Programmierstile

Bestimmte Methoden von TMongoCollection unterstützen zwei verschiedene Programmierstile: den üblichen Programmierstil und einen sprechenden (fließenden) Programmierstil. Diese Methoden sind: Aggregate, Count, Find, Insert, Remove, Update.

Verwenden des üblichen Programmierstils

Wenn Sie den üblichen Programmierstil verwenden, können Sie Generatorobjekte, wie Instanzen von TMongoPipeline oder TMongoQuery, wiederverwenden.

Sie müssen der Zielmethode ein Generatorobjekt übergeben, das Sie zuvor erstellt und konfiguriert haben. Die Methode übermittelt eine Anforderung an den MongoDB-Server auf Basis des angegebenen Generatorobjekts.

Das folgende Beispiel zeigt, wie eine Abfrage mit dem üblichen Programmierstil übermittelt wird:

Delphi:

MyQuery := TMongoQuery.Create(MyConnection.Env);
try
  MyQuery.Match
    .Add('cuisine', 'Italian')
    .Add('address.zipcode', '10075');
  MyQuery.Sort
    .Ascending(['name']);
  MyQuery.Limit(3);
  MyCursor := MyCollection.Find(MyQuery);
  // …
finally
  MyQuery.Free;

C++:

TMongoQuery* MyQuery = new TMongoQuery(MyConnection->Env);
try {
  MyQuery->Match()
    ->Add("cuisine", String("Italian"))
    ->Add("address.zipcode", String("10075"));
  MyQuery->Sort()
    ->Ascending(OPENARRAY((String("name"))));
  MyQuery->Limit(3);
  _di_IMongoCursor MyCursor = MyCollection->Find(MyQuery);
  // …
} __finally {
  delete MyQuery;
}

Verwenden des sprechenden Programmierstils

Mit einem sprechenden Programmierstil können Sie Ihren Code lesbarer gestalten.

Die Zielmethode gibt ein Generatorobjekt zurück. Das zurückgegebene Generatorobjekt können Sie mit den Daten füllen und Ihre Anforderung an den MongoDB-Server anhand einer Methodenverkettung übermitteln.

Mit welcher Methode, Sie Ihre Anforderung übermitteln, hängt von der Methode ab, mit der Sie ein Generatorobjekt abrufen:

TMongoCollection-Methode Generatorobjekt-Methode
Aggregate TMongoPipeline.Open
Count TMongoQuery.Value
Find TMongoQuery.Open
Insert TMongoInsert.Exec
Remove TMongoSelector.Exec
Update TMongoUpdate.Exec
Hinweis: In Delphi können Sie den Aufruf von TMongoPipeline.Open oder TMongoQuery.Open weglassen, Sie können stattdessen Ihr Generatorobjekt in IMongoCursor umwandeln. Siehe das folgende Beispiel.

Das folgende Beispiel zeigt, wie eine Abfrage mit dem sprechenden Programmierstil übermittelt wird:

Delphi:

MyCursor := MyCollection.Find
  .Match
    .Add('cuisine', 'Italian')
    .Add('address.zipcode', '10075')
  .&End
  .Sort
    .Ascending(['name'])
  .&End
  .Limit(3);

C++:

_di_IMongoCursor MyCursor = MyCollection->Find()
  ->Match()
    ->Add("cuisine", String("Italian"))
    ->Add("address.zipcode", String("10075"))
  ->End()
  ->Sort()
    ->Ascending(OPENARRAY((String("name"))))
  ->End()
  ->Limit(3)
  ->Open();