FireDAC.Phys.MongoDBWrapper.TMongoCollection
Delphi
TMongoCollection = class(TMongoObject)
C++
class PASCALIMPLEMENTATION TMongoCollection : public TMongoObject
Sommaire
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
class | public | FireDAC.Phys.MongoDBWrapper.pas FireDAC.Phys.MongoDBWrapper.hpp |
FireDAC.Phys.MongoDBWrapper | FireDAC.Phys.MongoDBWrapper |
Description
Représente une collection MongoDB (EN).
TMongoCollection encapsule la structure mongoc_collection_t (EN) de MongoDB.
Vous ne pouvez pas créer une instance de TMongoCollection directement. A la place, vous devez utiliser l'un des membres suivants de TMongoConnection et TMongoDatabase :
- TMongoConnection.GetCollection pour obtenir une nouvelle instance de
TMongoCollection
. - TMongoConnection.Collections pour obtenir une instance partagée de
TMongoCollection
. - TMongoDatabase.GetCollection pour obtenir une nouvelle instance de
TMongoCollection
. - TMongoDatabase.Collections pour obtenir une instance partagée de
TMongoCollection
.
TMongoCollection fournit des propriétés en lecture seule pour accéder aux données de base sur la collection :
- DB est le nom de la base de données qui contient la collection.
- Name est le nom de la collection.
- NS est l'espace de nommage (EN) de la collection.
Utilisez les membres suivants pour interroger les données de la collection :
- Find, pour trouver (EN) des documents de la collection qui correspondent à une requête donnée.
- Count, pour obtenir le nombre de documents dans la collection qui correspondent à une requête donnée.
- Dereference, pour obtenir un document de la collection en fonction de son ID d'objet.
- ListIndexes, pour obtenir une liste des index dans la collection.
- Aggregate, pour agréger des documents (EN) à l'aide d'un pipeline d'agrégation.
- Statistics, pour obtenir les statistiques sur la collection.
Pour modifier les données de la collection, vous pouvez utiliser les membres suivants :
- Insert pour insérer un nouveau document. Après un appel à
Insert
, vous pouvez lire l'ID d'objet du document inséré à partir de la propriété LastID de la collection. - Remove pour supprimer un document existant. Vous pouvez également utiliser RemoveAll pour retirer tous les documents de la collection, ou Drop pour retirer la collection elle-même à partir de la base de données.
- Update pour modifier les documents existants.
- CreateIndex pour créer un index dans la collection, ou DropIndex pour en retirer un.
- Rename pour changer le nom de la collection et sa base de données.
Lors de chaque appel à Insert
, Remove
ou Update
, TMongoCollection soumet les changements à la base de données. Pour effectuer plusieurs changements et les soumettre à la base de données en une seule fois :
- Appelez BeginBulk pour démarrer une opération de masse.
- Appelez
Insert
,Remove
ouUpdate
autant de fois que nécessaire pour effectuer vos changements localement. - Appelez EndBulk pour soumettre votre opération de masse.
Vous pouvez appeler CancelBulk si vous voulez abandonner une opération de masse que vous avez démarrée avec BeginBulk. Vous pouvez lire la valeur de IsBulk pour déterminer si vous êtes au milieu d'une opération de masse (True
) ou non (False
).
TMongoCollection fournit des propriétés qui indiquent le nombre de documents insérés (DocsInserted), correspondants (DocsMatched), modifiés (DocsModified), retirés (DocsRemoved) ou insérés dans le cadre d'une opération de mise à jour (DocsUpserted). TMongoCollection met à jour les valeurs de ces propriétés après chaque soumission de données à la base de données.
Pour exécuter des commandes de base de données (EN) sur la collection, utilisez l'une des méthodes suivantes :
- Command exécute la commande spécifiée et renvoie un curseur pour accéder à tous les documents de résultat.
- CommandSimple exécute la commande spécifiée et renvoie un document qui contient la réponse du serveur.
- LastError fournit le résultat de la commande getLastError (EN).
- Validate exécute la commande de validation (EN).
Pour configurer la sémantique de lecture et d'écriture de l'ensemble de répliques (EN), utilisez les propriétés suivantes :
- ReadPreference est la préférence de lecture de la collection.
- WriteConcern est la garantie d'écriture de la collection.
Certaines méthodes prennent en charge différents styles de codage
Certaines méthodes de TMongoCollection prennent en charge différents styles de codage : un style de codage normal et un style de codage fluent (EN). Ces méthodes sont : Aggregate, Count, Find, Insert, Remove, Update.
Utilisation d'un style de codage normal
Si vous utilisez un style de codage normal, vous pouvez réutiliser des objets constructeur, comme des instances de TMongoPipeline ou TMongoQuery.
Vous devez transmettre à la méthode cible un objet constructeur que vous avez précédemment créé et configuré. La méthode soumet une requête au serveur MongoDB en fonction de l'objet constructeur spécifié.
L'exemple suivant montre comment soumettre une requête en utilisant un style de codage normal :
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;
}
Utilisation d'un style de codage fluent
Si vous utilisez un style de codage fluent, vous pouvez rendre votre code plus lisible.
La méthode cible renvoie un objet constructeur. Vous pouvez remplir l'objet constructeur renvoyé avec les données et soumettre votre requête au serveur MongoDB en utilisant le chaînage des méthodes (EN).
La méthode employée pour soumettre votre requête dépend de la méthode que vous utilisez pour obtenir un objet constructeur :
Méthode TMongoCollection | Méthode d'objet constructeur |
---|---|
Aggregate | TMongoPipeline.Open |
Count | TMongoQuery.Value |
Find | TMongoQuery.Open |
Insert | TMongoInsert.Exec |
Remove | TMongoSelector.Exec |
Update | TMongoUpdate.Exec |
- Remarque : Dans Delphi, vous pouvez omettre l'appel à TMongoPipeline.Open ou à TMongoQuery.Open et transtyper à la place votre objet constructeur en IMongoCursor. Voir l'exemple ci-dessous.
L'exemple suivant montre comment soumettre une requête en utilisant un style de codage fluent :
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();