FireDAC.Phys.MongoDBWrapper.TMongoCollection
Delphi
TMongoCollection = class(TMongoObject)
C++
class PASCALIMPLEMENTATION TMongoCollection : public TMongoObject
Inhaltsverzeichnis
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:
- TMongoConnection.GetCollection, um eine neue Instanz von
TMongoCollection
abzurufen. - TMongoConnection.Collections, um eine gemeinsam genutzte Instanz von
TMongoCollection
abzurufen. - TMongoDatabase.GetCollection, um eine neue Instanz von
TMongoCollection
abzurufen. - TMongoDatabase.Collections, um eine gemeinsam genutzte Instanz von
TMongoCollection
abzurufen.
TMongoCollection stellt schreibgeschützte Eigenschaften für den Zugriff auf grundlegende Daten über die Sammlung bereit:
- DB ist der Name der Datenbank, in der sich die Sammlung befindet.
- Name ist der Name der Sammlung.
- NS ist der Namespace (EN) der Sammlung.
Mit den folgenden Membern können Sie Daten aus der Sammlung abfragen:
- Find, um Dokumente (EN) in der Sammlung zu suchen (EN), die einer gegebenen Abfrage entsprechen.
- Count, um die Anzahl der Dokumente in der Sammlung abzurufen, die einer gegebenen Abfrage entsprechen.
- Dereference, um ein Dokument aus der Sammlung anhand der Objekt-ID abzurufen.
- ListIndexes, um eine Liste der Indizes in der Sammlung abzurufen.
- Aggregate, um Dokumente anhand einer Aggregations-Pipeline zusammenzufassen (EN).
- Statistics, um Statistiken über die Sammlung abzurufen.
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:
- Rufen Sie BeginBulk auf, um eine Massenoperation zu starten.
- Rufen Sie
Insert
,Remove
oderUpdate
so oft wie benötigt auf, um alle Änderungen lokal vorzunehmen. - 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:
- Command führt den angegebenen Befehl aus und gibt einen Cursor zum Zugreifen auf alle resultierenden Dokumente zurück.
- CommandSimple führt den angegebenen Befehl aus und gibt ein Dokument zurück, das die Antwort von Server enthält.
- LastError stellt das Ergebnis des getLastError-Befehls (EN) bereit.
- Validate führt den Validierungsbefehl (EN) aus.
Mit den folgenden Eigenschaften konfigurieren Sie die Semantik zu Lesen und Schreiben der Replikatgruppe (EN):
- ReadPreference ist die Lesereihenfolge der Sammlung.
- WriteConcern ist die Bedeutung des Schreibvorgangs der Sammlung.
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();