FireDAC.Phys.MongoDBWrapper.TMongoCollection

De RAD Studio API Documentation
Aller à : navigation, rechercher

FireDAC.Phys.MongoDBWrapper.TMongoObjectSystem.TObjectTMongoCollection

Delphi

TMongoCollection = class(TMongoObject)

C++

class PASCALIMPLEMENTATION TMongoCollection : public TMongoObject

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 :

TMongoCollection fournit des propriétés en lecture seule pour accéder aux données de base sur la collection :

Utilisez les membres suivants pour interroger les données de la collection :

Pour modifier les données de la collection, vous pouvez utiliser les membres suivants :

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 :

  1. Appelez BeginBulk pour démarrer une opération de masse.
  2. Appelez Insert, Remove ou Update autant de fois que nécessaire pour effectuer vos changements localement.
  3. 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 :

Pour configurer la sémantique de lecture et d'écriture de l'ensemble de répliques (EN), utilisez les propriétés suivantes :

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